{"metadata":{"schemaVersion":1,"release":"v0.17.9","issue":1478,"generatedAt":"2026-09-09T20:09:38.959Z","counts":{"P":1184,"F":0,"U":1},"approvedCaseCount":78,"caseCount":79,"criterionCount":15,"explicitDecisionCount":609,"sourceCounts":{"P":576,"F":0,"U":609},"repositories":{"app":{"url":"https://github.com/dekerd/Barbelic","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","fingerprint":"9f324b36c0f786336e51af1f0c0d5e81595add0f8e695bd0d6dc26d5c20bd07d"},"admin":{"url":"https://github.com/dekerd/Barbelic-docs","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","fingerprint":"7668e6878b6587eaec2db55ea777283061f3c4dd94c8fe690e40749e608b87ca"}},"originalAuditSha256":"17020a7d39579134066e3982545ceb9f4a4ce7062d3c0a682056d3946c4a5ebe","verifiedInputSha256":"d660f530b577d424736c51887c4a9ddd536537a657afdbe061d0a7ad1ba60c48","limitations":["P/F/U는 입력 감사와 명시적 검토 판정이다. native green으로 자동 승격하지 않았다.","도구는 SHA·파일 해시·인용 관측값·완전성을 검증한다. 1/5/7/9의 목적·정답·경계·대표 결함 적절성은 검토자가 판단한다.","런타임 artifact의 내부 commit/run identity와 선택한 JSON pointer가 해당 CASE에 속하는지도 검토 근거에 명시해야 한다."],"publication":{"originalObservationCount":7431,"publishedObservationCount":5781,"selection":"all observations explicitly cited by the 1185 current decisions"}},"criteria":[{"number":1,"title":"검증 목적과 범위"},{"number":2,"title":"재현 가능한 시작 조건과 입력"},{"number":3,"title":"독립 실행"},{"number":4,"title":"상태·사건에 따른 순서"},{"number":5,"title":"독립적인 정답"},{"number":6,"title":"검사 상황의 실제 발생"},{"number":7,"title":"경계와 금지된 부작용"},{"number":8,"title":"필수 단언과 비동기 완료"},{"number":9,"title":"대표 결함 탐지와 공통 도구 검증"},{"number":10,"title":"성공·실패의 자원 정리"},{"number":11,"title":"준비+본문 60초"},{"number":12,"title":"동작·조건 대기 10초"},{"number":13,"title":"CASE 전체 재시도 0"},{"number":14,"title":"필수 CI의 생략·우회 차단"},{"number":15,"title":"첫 실패의 재현·진단 증거"}],"evidence":[{"id":"app-shared-93d4cad6","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":null,"summary":"실제 Chromium 공통 회귀23개. 최종 SHA의 정상·reload·실패·실제 종료·대표 DOM/IDB/CSS 주입과 numbered fixture 정리2개를 포함한다.","identity":{"commit":{"artifact":"log","lines":{"start":1,"end":1},"expected":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"}},"sourceEquivalence":null,"artifacts":[{"id":"log","path":"quality-app-current-shared-browser.log","sha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec"}]},{"id":"app-node-93d4cad6","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":null,"summary":"실제 npm check최종 check의 실제 검사 pass/0fail 및 조건부 DBskip 구분 중 품질공통도구의해당검사만소스 test명과대조. DB취소실행은이log에서skip되어별도필수DB증거대기.","identity":{"commit":{"artifact":"log","lines":{"start":1,"end":1},"expected":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"}},"sourceEquivalence":null,"artifacts":[{"id":"log","path":"quality-phase2-current-check.log","sha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1"}]},{"id":"case056-atomicity-normal","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":"4928a0ae-236c-4bde-800e-97a36e1498ca-normal","summary":"case056-atomicity normal: 2개 필수 관리자 시나리오를 모두 실행한 실제 phase","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"playwright/admin-quality-report.json","sha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117"},{"id":"product","path":"product-mutant.json","sha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c"},{"id":"native","path":"native-results.json","sha256":"2f0722e60373d199388c9ebd69b661ae24ce2f23c84c752aee4df623ff3e20f8"}]},{"id":"case056-atomicity-mutant","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":"4928a0ae-236c-4bde-800e-97a36e1498ca-mutant","summary":"case056-atomicity mutant: 2개 필수 관리자 시나리오를 모두 실행한 실제 phase","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"playwright/admin-quality-report.json","sha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793"},{"id":"product","path":"product-mutant.json","sha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767"},{"id":"native","path":"native-results.json","sha256":"30387f971065368dd5fba5158409a4a232a853802bbc9412cceb0b603eda2578"}]},{"id":"case056-atomicity-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":"4928a0ae-236c-4bde-800e-97a36e1498ca-restored","summary":"case056-atomicity restored: 2개 필수 관리자 시나리오를 모두 실행한 실제 phase","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"playwright/admin-quality-report.json","sha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef"},{"id":"product","path":"product-mutant.json","sha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b"},{"id":"native","path":"native-results.json","sha256":"2539d083fa9a383e7bb48623f313728e9f6371167169ce4bc89e9d604f47d903"}]},{"id":"case056-permission-normal","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":"16df127d-8c6a-47aa-b275-b6447ac65d57-normal","summary":"case056-permission normal: 2개 필수 관리자 시나리오를 모두 실행한 실제 phase","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"playwright/admin-quality-report.json","sha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6"},{"id":"product","path":"product-mutant.json","sha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb"},{"id":"native","path":"native-results.json","sha256":"a0aa7a9572f7ddf782cb9fe85125439e1d74e387433eb71bdc83f7cb00b48541"}]},{"id":"case056-permission-mutant","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":"16df127d-8c6a-47aa-b275-b6447ac65d57-mutant","summary":"case056-permission mutant: 2개 필수 관리자 시나리오를 모두 실행한 실제 phase","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"playwright/admin-quality-report.json","sha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292"},{"id":"product","path":"product-mutant.json","sha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2"},{"id":"native","path":"native-results.json","sha256":"452ef7bcc946d161fcf85cb2a9edbd7ae6e90c5ff098c233750dcf08b3efe84f"}]},{"id":"case056-permission-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":"16df127d-8c6a-47aa-b275-b6447ac65d57-restored","summary":"case056-permission restored: 2개 필수 관리자 시나리오를 모두 실행한 실제 phase","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"playwright/admin-quality-report.json","sha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd"},{"id":"product","path":"product-mutant.json","sha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109"},{"id":"native","path":"native-results.json","sha256":"e5f70c87e876ba7789c62f0e6597bedaf6de96a1cd6b6db8d59476446cd67ea1"}]},{"id":"admin-shared-37aa8f0c","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":null,"summary":"37aa 실제 check:admin155/155 중 CASE056 공통 대기·응답주입·필수단언·정리·첫실패 도구 검증. hosted CI 성공을 뜻하지 않음.","identity":{"commit":{"artifact":"log","lines":{"start":1,"end":1},"expected":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83"}},"sourceEquivalence":null,"artifacts":[{"id":"log","path":"quality-admin-37aa-verified-check.log","sha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e"}]},{"id":"admin-hosted-source","kind":"source-review","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":null,"summary":"관리자 필수 hosted 경로의 읽기 자격 요구 소스. 실제 secret 설정/hosted 성공을 증명하지 않는다.","identity":null,"sourceEquivalence":null,"artifacts":[{"id":"workflow","path":".github/workflows/ci.yml","sha256":"0cdd9ad52e8204f3fc9c6000bbcf459fe4d570c61cf6b197eb093cc43dd3eb62"}]},{"id":"app-source-current","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":null,"summary":"검토된 최종 정적 감사의 미확인 칸마다 실제 source ref 원문을 고정한다. 실행 판정은 별도 명시 override에서만 한다.","identity":null,"sourceEquivalence":null,"artifacts":[{"id":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","sha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0"},{"id":"source-1","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/case.json","sha256":"f20986753fa5697a68a75c0b2194bc942e62cca9047558c330f0d3b15460bccb"},{"id":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","sha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf"},{"id":"source-3","path":"error-cases/support/fixture.mjs","sha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2"},{"id":"source-4","path":"e2e/support/qualityControl.mjs","sha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06"},{"id":"source-5","path":"playwright.config.mjs","sha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491"},{"id":"source-6","path":"e2e/support/caseDiagnostic.mjs","sha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f"},{"id":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","sha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f"},{"id":"source-8","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/case.json","sha256":"7eaad6f0f2b87e65ba13a2e28a4608d63f531fbc8f74d72738831488727d4e66"},{"id":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","sha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f"},{"id":"source-10","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/case.json","sha256":"b22a0ef117d012750233db57479e55ea01504ec6cff7edf8f48fba3ac023aae7"},{"id":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","sha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d"},{"id":"source-12","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/case.json","sha256":"901c76016e222043bd87e5793debe17bb61e9e33064a4c4c2645310377c7bb98"},{"id":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","sha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80"},{"id":"source-14","path":"error-cases/CASE-006-desktop-pr-growth-pagination/case.json","sha256":"968c1a4a659f386bbb5869bed27093945e69803c59ef44adeaf2a3781ba0b575"},{"id":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","sha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf"},{"id":"source-16","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/case.json","sha256":"de097fc9d88cb2c6210ab22541009ccb497dde551167b8c3dbca2b2039f291cd"},{"id":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","sha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8"},{"id":"source-18","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/case.json","sha256":"1decc7cd283b506b854ef35f37a60cf6870f97c2a39d0b96df46d721fd91201b"},{"id":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","sha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208"},{"id":"source-20","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/case.json","sha256":"fd7ebf031f551b9afa09a44a2d300ad9fe2fcc546ec2bf5ac92a99ddf377aa3f"},{"id":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","sha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4"},{"id":"source-22","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/case.json","sha256":"b5a119ad7ff193dac71db85796da221ad47baa9e4ebc94562ba7182414ade43f"},{"id":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","sha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed"},{"id":"source-24","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/case.json","sha256":"82cc1f9f51729baa25031e011f220968087be8637f42768fbbfa9fcd546010a8"},{"id":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","sha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec"},{"id":"source-26","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/case.json","sha256":"72659106abe3a2d90283a3bca607efa0d166e6dfd59fb7df0c6462b988895cae"},{"id":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","sha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6"},{"id":"source-28","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/case.json","sha256":"38c477f185a6740224e5964dd0ef0218ceda785268c764cd82a9ac3df0f6e597"},{"id":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","sha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602"},{"id":"source-30","path":"error-cases/CASE-014-cold-start-snapshot-reading/case.json","sha256":"8aef397b50a27e759c8e45ec3995a0b1d595c1659f650631a49640c00a43b934"},{"id":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","sha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e"},{"id":"source-32","path":"error-cases/CASE-015-degraded-create-recovery-flush/case.json","sha256":"5c779f76cb6dea88271bae1583b98973479d18a671e0524f920a45b866535463"},{"id":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","sha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae"},{"id":"source-34","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/case.json","sha256":"4c3686111545f105c238a80c111806ca5edb1bf2180990e9905f9949e121c47d"},{"id":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","sha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56"},{"id":"source-36","path":"error-cases/CASE-017-account-deletion-round-trip/case.json","sha256":"313301e930f5888b3d5e5f2291fbbdaa6bddb4732e3e45ab72e12bf1de606fca"},{"id":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","sha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe"},{"id":"source-38","path":"error-cases/CASE-018-ugc-report-block-round-trip/case.json","sha256":"3ba9118722d2738d998b8804855b4cf7d242e033df4928b50d59ec06c3d74057"},{"id":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","sha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c"},{"id":"source-40","path":"error-cases/CASE-019-group-board-percent-round-trip/case.json","sha256":"bfa0824053c796ee6342d756e11cd149099a65a3b58ddb28921a9b972d6daa7a"},{"id":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","sha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc"},{"id":"source-42","path":"error-cases/CASE-020-group-board-composite-round-trip/case.json","sha256":"155ae9718bcdfe759440ddb6a1f995ec9494dcb989c518dc5a0640fb49b80412"},{"id":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","sha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194"},{"id":"source-44","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/case.json","sha256":"b1d29f808cdbf8b67dfc88918ac6347a6b4a67c7c0835c2ddf3c99e29f468d7e"},{"id":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","sha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba"},{"id":"source-46","path":"error-cases/CASE-022-live-mixed-composite-round-trip/case.json","sha256":"41dadf35ffe786ba08b33a8d180b6e02bb53e03e5fd6890477230d89e3d6c13f"},{"id":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","sha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28"},{"id":"source-48","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/case.json","sha256":"3eecaeaa19ebc0841e44724b698a7e193a50c2e7d71ec546027c580d5b37f525"},{"id":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","sha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a"},{"id":"source-50","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/case.json","sha256":"ef8e54ff3df223fef86cd46bf045a549eb66c34b642ac03e14f3cc494429ec85"},{"id":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","sha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f"},{"id":"source-52","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/case.json","sha256":"5c3ac28636160d9ec6ae8d4481203b86c0be1426f54505af425bfb7204f15d6e"},{"id":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","sha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c"},{"id":"source-54","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/case.json","sha256":"71a697f3fdbf5fbbc20851fbed1376386f88cf9671a371f881360a79ade85408"},{"id":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","sha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b"},{"id":"source-56","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/case.json","sha256":"ddec8369b29fc56433d9bef1d6b2effd52f62cafcbdbcbefc9cc2333e1c0450f"},{"id":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","sha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05"},{"id":"source-58","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/case.json","sha256":"30f9cca8f8c47080f169a5f3aafc441cc11c6cfeee48db7f8e08e58f32956419"},{"id":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","sha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093"},{"id":"source-60","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/case.json","sha256":"3ede81731d7faf401151c23567240f7d51ef7cd83a3368bb55dcc7ceb1884cba"},{"id":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","sha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f"},{"id":"source-62","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/case.json","sha256":"398cebe223e42e3860d82a487dfe096dfab1d3b53ec7b1756a36b55da04bec3d"},{"id":"source-63","path":"e2e/support/checkpointEvidence.mjs","sha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0"},{"id":"source-64","path":"e2e/support/featureJourney.mjs","sha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9"},{"id":"source-65","path":"e2e/support/boundedWait.mjs","sha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1"},{"id":"source-66","path":"e2e/required-coverage.json","sha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0"},{"id":"source-67","path":"scripts/check-e2e-evidence.mjs","sha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6"},{"id":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","sha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695"},{"id":"source-69","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/case.json","sha256":"1b81494102e55172b51993c7fff3430e7de42926eea53e488122bff104d7e03c"},{"id":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","sha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35"},{"id":"source-71","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/case.json","sha256":"79e6465eff4a129585caa1c2cb355585f13e2af0e613c27fcd43617d146f3dc6"},{"id":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","sha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5"},{"id":"source-73","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/case.json","sha256":"b84d960d7980b6232ad980ea0b37894baa06d57c6555a95d6430909048714c1b"},{"id":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","sha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540"},{"id":"source-75","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/case.json","sha256":"128b24297a34aed2d8f5db8f623ff71364cad29161bc190de8c96aea4cf0dfec"},{"id":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","sha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845"},{"id":"source-77","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/case.json","sha256":"44a9fc8c7b1017dfcebaf838d624a11a0fb46e618f2491a9b1713bf1d0943b49"},{"id":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","sha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c"},{"id":"source-79","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/case.json","sha256":"8690fac2a34e932151f54779adc6bd2a900ad5d6cb42c5ce57ee420f982d8982"},{"id":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","sha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc"},{"id":"source-81","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/case.json","sha256":"d7c5c5ea145d5624f2b0e3ced88a6a43742650095e962171b71c01a6cc3c99f1"},{"id":"source-82","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs","sha256":"f1676b51d3a286231ea36496d66068de7440f394a17705f517dd5caf6fcb8c2c"},{"id":"source-83","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/case.json","sha256":"93505a714a203a69f0f79dbc1def7ef8ff198cf8a825532f8abb15167903acef"},{"id":"source-84","path":"e2e/support/productMutantExperiment.mjs","sha256":"be58b7fea18ae51c8eaa320e20b525de743e8e504f76b7d30c978ad8e7ea7345"},{"id":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","sha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91"},{"id":"source-86","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/case.json","sha256":"1f3418c16352538120ac2b84413fc2d04879737975a093e389725f48fd5f397c"},{"id":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","sha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350"},{"id":"source-88","path":"error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs","sha256":"62f0509667ebb0f73708f1e80cb650c7387765100a54aa83738a9fd92df987f7"},{"id":"source-89","path":"error-cases/CASE-041-committed-write-lost-ack/case.json","sha256":"c8bc1f21d72011ad3758476bffd8f5f6402eff634e121b73d53e8e0b0755e1fc"},{"id":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","sha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255"},{"id":"source-91","path":"error-cases/CASE-042-pending-write-browser-restart/case.json","sha256":"dce2fc3bef4450e35c6c70448c89bba4f606fb491d323c88509031e72d3af67b"},{"id":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","sha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175"},{"id":"source-93","path":"error-cases/CASE-043-expired-jwt-held-recovery/case.json","sha256":"f726071ff99d861c4e5c48ca4d02e5ca102d1a39b40fac766517dd4efb5d2462"},{"id":"source-94","path":"error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs","sha256":"3d52d79d0a395edd1adc45de35cdc89ee3db96c5822b497ac399f1ec9be38149"},{"id":"source-95","path":"error-cases/CASE-044-pending-owner-switch-isolation/case.json","sha256":"ed6d0a6a3df01852b88c3495bf98c261bda623b69d7869e2b83c28dd69f530fe"},{"id":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","sha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd"},{"id":"source-97","path":"error-cases/CASE-045-concurrent-tab-latest-intent/case.json","sha256":"ad64d1a0b97f7d7518ee3d7e723e415b2ad05c30d07f5f15b79bc8bc0c2993aa"},{"id":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","sha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d"},{"id":"source-99","path":"error-cases/CASE-046-blocked-write-user-recovery/case.json","sha256":"77a283bc11bf4420eeb600d0d2cd9770ca7b76640a529fe565134cf883f208c1"},{"id":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","sha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da"},{"id":"source-101","path":"error-cases/CASE-047-read-model-late-response/case.json","sha256":"3110ef8750c33be59e81e03c190611fa85cb60a228bb1e9cacb0b03e6b463296"},{"id":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","sha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7"},{"id":"source-103","path":"error-cases/CASE-048-https-sw-offline-pending-update/case.json","sha256":"08fa5610038aaddf5df0aad8c2513d6cbd334d447fade095aa4c1e1e49311bd7"},{"id":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","sha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27"},{"id":"source-105","path":"error-cases/CASE-049-provider-callback-cancel-retry/case.json","sha256":"c5b7d8b8bd205a44cc7f34af08913b7fcc04ea0d26184e869a1ac44d2e65e44f"},{"id":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","sha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272"},{"id":"source-107","path":"error-cases/CASE-050-profile-edit-failure-retry/case.json","sha256":"d9c29d0b0ae30689a31df51206eb8e034e36a5c1491f613e48b040f7ff6abe61"},{"id":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","sha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c"},{"id":"source-109","path":"error-cases/CASE-051-account-link-return-identity-preservation/case.json","sha256":"d4dba7a636f2249086564e8ebf49e58987f7143d3804e7370d36892c960daf10"},{"id":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","sha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca"},{"id":"source-111","path":"error-cases/CASE-052-feed-reaction-failure-recovery/case.json","sha256":"9e11bfbe16749bff7ce9eb10f8b844e1b85441f617f16a6d5019c150a16df0b0"},{"id":"source-112","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs","sha256":"197fc792d6161f3d645d05fdc2dfb88bc2d013c236e99f3194e2c535d3c6896d"},{"id":"source-113","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/case.json","sha256":"3fc9f760d0d4174459f84c1e3eec6f8d532eef5dd1f00914c61ebeb155dd1278"},{"id":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","sha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695"},{"id":"source-115","path":"error-cases/CASE-054-catalog-search-archive-recovery/case.json","sha256":"1a3cb6ba056e369f242ebe91923e84d827e0f2b0432832085ddd4fffbdc05dac"},{"id":"source-116","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs","sha256":"b360c0e4db41a93436c907d46094fb5cc74afdd0306d1d2741b67af7d84c04d1"},{"id":"source-117","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/case.json","sha256":"2ddf49818cdfd550f7d153c897df0ac220267a391051a1a822193dca2b1a538b"},{"id":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","sha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d"},{"id":"source-119","path":"error-cases/CASE-057-export-download-facts-retry/case.json","sha256":"f9394bf043915a38db51d443e393a45cdc3705dc649b2975222afe1afdb7104e"},{"id":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","sha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab"},{"id":"source-121","path":"error-cases/CASE-058-indexeddb-enqueue-failure/case.json","sha256":"f36ade470ddd645b364dae69daba6c7893bb071c952b9e9c63da951cf7065834"},{"id":"source-122","path":"e2e/viewport-matrix.spec.mjs","sha256":"629c9730e09f96eb67e3e4679e8543d4f39f15983aec241407e0f55499aedb05"},{"id":"source-123","path":"e2e/support/viewportQualityContract.mjs","sha256":"fde8962b2f5b29ffbc378b6cb6941f9d9cb2553ae6da4180a5f31693837eb5b7"},{"id":"source-124","path":"e2e/support/viewportQuality.mjs","sha256":"a4a81e7663a51dcb0174191d9c555ec6fe4ea156019bc6419dc19e779f53bbaf"},{"id":"source-125","path":"playwright.viewport.config.mjs","sha256":"7965e22d9ddea3f8e487513ab61a78c0fd45d73168b8e01da3c20b07b4c2f59b"},{"id":"source-126","path":"e2e/dock-geometry.spec.mjs","sha256":"c72ef4e41a4af1b76bfdf24078538cf3654ada3d41f59fbb94eee90cd639ef9d"},{"id":"source-127","path":"e2e/bottom-clearance.spec.mjs","sha256":"154e01c536be30efa14889a8099dd87fbca9fcea27b412bf716c590973400704"},{"id":"source-128","path":"e2e/group-design-notifications.spec.mjs","sha256":"ac73f78511481d414e56661bbe1b7f734ead84e02af11d578f6baff99c334f0a"},{"id":"source-129","path":"e2e/profile-design-settings.spec.mjs","sha256":"704c0512695a04bf4ca5ccec3ea7fa1a5d2e1539efaaad8aa06c86615a3a1bad"},{"id":"source-130","path":"e2e/report-design-detail.spec.mjs","sha256":"74d0fa5a3613008dcfeae7b403e6f226b59fedc98837c78db678e0070a9ab2bb"}]},{"id":"admin-source-current","kind":"source-review","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","runId":null,"summary":"검토된 최종 정적 감사의 미확인 칸마다 실제 source ref 원문을 고정한다. 실행 판정은 별도 명시 override에서만 한다.","identity":null,"sourceEquivalence":null,"artifacts":[{"id":"source-0","path":"admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs","sha256":"a1974d9867ef19993b21241515270a99d761cf89f6cfaf23b3b9b54cc353ddc5"},{"id":"source-1","path":"admin/e2e/support/quality.mjs","sha256":"f1947f92ae55fdcf36949ed83c49ab849796bbb8a0420214e4ac2fa911142111"},{"id":"source-2","path":"admin/e2e/support/reporter.mjs","sha256":"9801399120ee9b82cbc6861e8a52ed727e049e34816765af333983d03d0e2282"},{"id":"source-3","path":"admin/playwright.config.mjs","sha256":"400329d5e5c62898220f934ff659b170638de091b71dd34ce72cb2a5a2ff5d1a"},{"id":"source-4","path":"admin/e2e/support/fixture.mjs","sha256":"916e0452df82055b9f209e319b80faa05f1619deaa18d7cdc1f144154e579177"},{"id":"source-5","path":".github/workflows/ci.yml","sha256":"0cdd9ad52e8204f3fc9c6000bbcf459fe4d570c61cf6b197eb093cc43dd3eb62"},{"id":"source-6","path":"admin/e2e/backend-fixture.lock.json","sha256":"fd4e9cb4076415e52a73dad57268948dfb00714ca0bb08cdea8c1d9f38e5c5ca"},{"id":"source-7","path":"admin/e2e/support/requests.mjs","sha256":"b83e6a45a4a1b0b20c0fbd299aa9a695fd2d1e28e0993353d2c8caa11f118008"}]},{"id":"run-browser-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983964771-26036","summary":"해당 lane 최초 native 결과와 별도 품질·정리·진단 관측. 전체 P 판정이 아님.","identity":{"commit":{"artifact":"quality","pointer":"/revision"},"runId":{"artifact":"quality","pointer":"/runId"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","sha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161"},{"id":"native","path":"browser-1/error-cases.json","sha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d"}]},{"id":"run-browser-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983964771-26036","summary":"해당 lane 최초 native 결과와 별도 품질·정리·진단 관측. 전체 P 판정이 아님.","identity":{"commit":{"artifact":"quality","pointer":"/revision"},"runId":{"artifact":"quality","pointer":"/runId"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","sha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56"},{"id":"native","path":"browser-2/error-cases.json","sha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7"}]},{"id":"run-browser-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983964771-26036","summary":"해당 lane 최초 native 결과와 별도 품질·정리·진단 관측. 전체 P 판정이 아님.","identity":{"commit":{"artifact":"quality","pointer":"/revision"},"runId":{"artifact":"quality","pointer":"/runId"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","sha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad"},{"id":"native","path":"browser-3/error-cases.json","sha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b"}]},{"id":"run-browser-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983964771-26036","summary":"해당 lane 최초 native 결과와 별도 품질·정리·진단 관측. 전체 P 판정이 아님.","identity":{"commit":{"artifact":"quality","pointer":"/revision"},"runId":{"artifact":"quality","pointer":"/runId"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","sha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931"},{"id":"native","path":"browser-4/error-cases.json","sha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd"}]},{"id":"run-viewport","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983964771-26036","summary":"해당 lane 최초 native 결과와 별도 품질·정리·진단 관측. 전체 P 판정이 아님.","identity":{"commit":{"artifact":"quality","pointer":"/revision"},"runId":{"artifact":"quality","pointer":"/runId"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","sha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7"},{"id":"native","path":"viewport/viewport-matrix.json","sha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00"}]},{"id":"app-precheck-93d4cad6","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983833096-85404","summary":"실제 최종 precheck와 필수 PostgreSQL 취소/소유 세대 검사. 조건부 Node DBskip을 이 증거로 대체하지 않는다.","identity":{"commit":{"artifact":"summary","pointer":"/revision"},"runId":{"artifact":"summary","pointer":"/runId"}},"sourceEquivalence":null,"artifacts":[{"id":"summary","path":"summary.json","sha256":"95e30827b79777c4887474436cd7ecbe73f11063d8b3eb4049861171b5c64142"},{"id":"database","path":"database.log","sha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8"}]},{"id":"app-required-78-93d4cad6","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983964771-26036","summary":"실제 browser56+viewport22의 같은 run 최초 실행 및 필수 집계. 부분 단계 실행이며 full CI 통과를 주장하지 않는다.","identity":{"commit":{"artifact":"summary","pointer":"/revision"},"runId":{"artifact":"summary","pointer":"/runId"}},"sourceEquivalence":null,"artifacts":[{"id":"summary","path":"summary.json","sha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0"}]},{"id":"case038-owner-normal","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"a5f0cd30-9913-4221-a9e5-cd3594fac166-normal","summary":"case038-owner normal: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f"},{"id":"native","path":"native-results.json","sha256":"dd55e04d545cc500fb3a4085fa68461dead1e7a2969be2fbd92fec5ca3514d6e"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"6161fd46cb57d357681d1f29ff77ad47c702bbe8db5c63e5e0656dfc4a9ce53c"},{"id":"sql-original","path":"sql-original.local.json","sha256":"53965ac3d8149600ce5af458bc592a42a59898b7bb2a96d6730553321e3808c5"}]},{"id":"case038-owner-mutant","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"a5f0cd30-9913-4221-a9e5-cd3594fac166-mutant","summary":"case038-owner mutant: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be"},{"id":"native","path":"native-results.json","sha256":"83adf9737a5aa215c49680ed0df8ced235b2e4cf10fdecc066c769b629d1f33e"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"cb170077ec1f005e9dc0b4af69aa88fc353b4fe63b1f2e2bfeb5e2b825706d71"},{"id":"sql-original","path":"sql-original.local.json","sha256":"53965ac3d8149600ce5af458bc592a42a59898b7bb2a96d6730553321e3808c5"}]},{"id":"case038-owner-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"a5f0cd30-9913-4221-a9e5-cd3594fac166-restored","summary":"case038-owner restored: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5"},{"id":"native","path":"native-results.json","sha256":"ee14367aea69acfc7529b0907d9023ff5070a1e0f17072b8a93ae2daccd35dbe"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"9a2ef0c1fb197b370e965eb07bf90cedd5ab7611b7d7b62411917ef1b18efb70"},{"id":"sql-original","path":"sql-original.local.json","sha256":"53965ac3d8149600ce5af458bc592a42a59898b7bb2a96d6730553321e3808c5"}]},{"id":"case041-replay-normal","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"86326b66-ee21-4412-a29e-9b355c4dd758-normal","summary":"case041-replay normal: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784"},{"id":"native","path":"native-results.json","sha256":"b1c9354a6d32d85d548323b382570e2e27b46f7ca931a0e3c8bfe3ab702378ec"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"e3d430eb269d65f7a57d9311bd75eaa9977f65d1287ff852f52c2f5e3bb8e41c"},{"id":"sql-original","path":"sql-original.local.json","sha256":"cc256637e374a01a41f9f828b2b28be0ea0959b69c05964b4f5c4c047da73ef2"}]},{"id":"case041-replay-mutant","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"86326b66-ee21-4412-a29e-9b355c4dd758-mutant","summary":"case041-replay mutant: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51"},{"id":"native","path":"native-results.json","sha256":"4fa041f425cdcd4f78307c665a1d8c50d28e78ec2a2fefd9f4d124fa7bf372a0"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"c09816d7e92421ee3270d58a2094544fd72b01bd1500ce7d2a5f0f333294d9ea"},{"id":"sql-original","path":"sql-original.local.json","sha256":"cc256637e374a01a41f9f828b2b28be0ea0959b69c05964b4f5c4c047da73ef2"}]},{"id":"case041-replay-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"86326b66-ee21-4412-a29e-9b355c4dd758-restored","summary":"case041-replay restored: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a"},{"id":"native","path":"native-results.json","sha256":"49456fd7340e122e76cb1fdfc5178d96ac79ffc88ac5b7b65b2d68354c189898"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"432a4447cf0024c08e26618a897282718c97ef0b0c786d164e4b896555148d95"},{"id":"sql-original","path":"sql-original.local.json","sha256":"cc256637e374a01a41f9f828b2b28be0ea0959b69c05964b4f5c4c047da73ef2"}]},{"id":"case044-owner-normal","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"508310aa-b65b-4509-b8eb-feb74e893638-normal","summary":"case044-owner normal: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c"},{"id":"native","path":"native-results.json","sha256":"807f019d6fe33bf5d335904a1c7e7a6e4666afc3ad70bc69823c1f5cfe535c89"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"6109ccc0e9ba88cec7a3e57c8913e17de0b46b90a86afa07914d599f3acbd2a6"},{"id":"sql-original","path":"sql-original.local.json","sha256":"3536d05065333d00de3452a291708380874130b31ff8ae8a82d5bffe504d1272"}]},{"id":"case044-owner-mutant","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"508310aa-b65b-4509-b8eb-feb74e893638-mutant","summary":"case044-owner mutant: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6"},{"id":"native","path":"native-results.json","sha256":"9f6d3eba40551bd8f5ccb0fc37ae30cec24c452cc76bfac760ef19414815352a"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"3723d018dca0620191da40149aa28321272bd0ab1246b0837ca4981818442f58"},{"id":"sql-original","path":"sql-original.local.json","sha256":"3536d05065333d00de3452a291708380874130b31ff8ae8a82d5bffe504d1272"}]},{"id":"case044-owner-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"508310aa-b65b-4509-b8eb-feb74e893638-restored","summary":"case044-owner restored: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518"},{"id":"native","path":"native-results.json","sha256":"4a0087c9c5a6e832c33a1e97c9e93cdce3b350b313dd3587505700b3fd38c10d"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"fa3ed18ec8eed02b5761ea586d946f421f485cdc6b7fbbb0b92732676377fbdf"},{"id":"sql-original","path":"sql-original.local.json","sha256":"3536d05065333d00de3452a291708380874130b31ff8ae8a82d5bffe504d1272"}]},{"id":"case053-permission-normal","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"21bc86b9-253f-4286-9414-dba782a2f0c6-normal","summary":"case053-permission normal: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7"},{"id":"native","path":"native-results.json","sha256":"c026ad0fb9ded79f0c2a5aa7485fa2513d310bdeba49ebee2def876b4c9538bc"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"36a0e212dc094b6fae4ca17d8a789032c280e04ba2784e546ef12fc5dbbef206"},{"id":"sql-original","path":"sql-original.local.json","sha256":"825b7a9a0b06d62856e454d98c26277ef3db9fa9c7700eb8ad58efca25cebe3a"}]},{"id":"case053-permission-mutant","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"21bc86b9-253f-4286-9414-dba782a2f0c6-mutant","summary":"case053-permission mutant: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463"},{"id":"native","path":"native-results.json","sha256":"2b5acf48306972c6a23ff8ad800716531bb768eebf38b4e0330cb6e78cacbc56"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"519235ea4ec920def815dadb20ea64b10cec8edd00eddddfa1249ee1065de86a"},{"id":"sql-original","path":"sql-original.local.json","sha256":"825b7a9a0b06d62856e454d98c26277ef3db9fa9c7700eb8ad58efca25cebe3a"}]},{"id":"case053-permission-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"21bc86b9-253f-4286-9414-dba782a2f0c6-restored","summary":"case053-permission restored: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b"},{"id":"native","path":"native-results.json","sha256":"f3d341fd4279319f64277c1682b9b07f6eef761c8e8295e8b6d0e3b9f1a3549d"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"c3ffbec9f8641a66c9f933bf143784f228773eb5e8c2a8ecfa7552894a7b0145"},{"id":"sql-original","path":"sql-original.local.json","sha256":"825b7a9a0b06d62856e454d98c26277ef3db9fa9c7700eb8ad58efca25cebe3a"}]},{"id":"case055-atomicity-normal","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"8993681f-62a4-4177-b435-f1ef8c7f6cf5-normal","summary":"case055-atomicity normal: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615"},{"id":"native","path":"native-results.json","sha256":"a9e981ec1bf5a85666ee4a102d6db06b75140afc0fd6d75ff877784aa2f4cae1"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"b00137fc6bcd0c7a31ee5068efb84099ebb00f4db4f0750a54cb853ba592525e"},{"id":"sql-original","path":"sql-original.local.json","sha256":"be7084333cd51acd6988c0853dc64b78659fc85f564327f6856aa2f5d8c528bb"}]},{"id":"case055-atomicity-mutant","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"8993681f-62a4-4177-b435-f1ef8c7f6cf5-mutant","summary":"case055-atomicity mutant: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4"},{"id":"native","path":"native-results.json","sha256":"4962a7507b86773ddd4860139bd76d77f849e25291dcb2839700df38ce5faa48"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"8f99f563bc7a8728debcd632af7c297a413b378ad1cb7591f2062e5ee2133552"},{"id":"sql-original","path":"sql-original.local.json","sha256":"be7084333cd51acd6988c0853dc64b78659fc85f564327f6856aa2f5d8c528bb"}]},{"id":"case055-atomicity-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"8993681f-62a4-4177-b435-f1ef8c7f6cf5-restored","summary":"case055-atomicity restored: 기존 CASE와 목표 단언의 실제 SQL 결함 실험","identity":{"commit":{"artifact":"product","pointer":"/revision"}},"sourceEquivalence":null,"artifacts":[{"id":"product","path":"product-mutant.json","sha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb"},{"id":"native","path":"native-results.json","sha256":"37268990831a376b82b88180012cea6185d9076760b31a019714df25bb35bde3"},{"id":"quality","path":"browser-1-of-1.e2e-evidence.json","sha256":"9da99872f14a1380164c6c1cb9e31b81f0ab021b9b98048fa9c8e71cecb86770"},{"id":"sql-original","path":"sql-original.local.json","sha256":"be7084333cd51acd6988c0853dc64b78659fc85f564327f6856aa2f5d8c528bb"}]},{"id":"viewport-local-1788983964771-26036","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","runId":"local-1788983964771-26036","summary":"Viewport 22 CASE exact checkpoint/control/cleanup/diagnostic observations; final-input; no native-to-quality automatic promotion.","identity":{"commit":{"artifact":"quality","pointer":"/revision","expected":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},"runId":{"artifact":"quality","pointer":"/runId","expected":"local-1788983964771-26036"}},"sourceEquivalence":null,"artifacts":[{"id":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","sha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7"},{"id":"native","path":"viewport/viewport-matrix.json","sha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00"},{"id":"summary","path":"summary.json","sha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0"}]}],"observations":[{"id":"app-shared-93d4cad6#line-2-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":2,"end":2},"valueSha256":"66092192edb6f8ce9d0c6a7848fe3e1d42e978bf059dcc20142838485a4be788","matched":true,"value":"✔ normal response chains drain their real last request and observing a page is idempotent (660.209ms)"},{"id":"app-shared-93d4cad6#line-3-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":3,"end":3},"valueSha256":"147df3665eb367077aab8b500075873ba791c5a9a93d9db258fe1a1b23a907c7","matched":true,"value":"✔ reload preserves the old held request diagnosis while the new document drains (213.8467ms)"},{"id":"app-shared-93d4cad6#line-9-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":9,"end":9},"valueSha256":"705b8e54356d101a740b98cfed9113f7c91e2e831cbbc75073dcb5ed6f97cb10","matched":true,"value":"✔ actual page close is preserved separately from request completion and route cleanup (156.3968ms)"},{"id":"app-shared-93d4cad6#line-10-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":10,"end":10},"valueSha256":"e0680f9e8fd62ed96f2ecb837caf0c2bfe6b68284cd594eead952edbba11e432","matched":true,"value":"✔ actual page destruction prevents a deferred automatic save against the deleted Auth owner (710.3056ms)"},{"id":"app-shared-93d4cad6#line-11-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":11,"end":11},"valueSha256":"a364df74a9a7fcd26330d8eb5dc93bf48e6492939b140a666f0c0bfcfb99a524","matched":true,"value":"✔ the actual closed-page error gate preserves stored errors before Auth cascade can erase them (599.2144ms)"},{"id":"app-shared-93d4cad6#line-11-failure-diagnostic","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":11,"end":11},"valueSha256":"a364df74a9a7fcd26330d8eb5dc93bf48e6492939b140a666f0c0bfcfb99a524","matched":true,"value":"✔ the actual closed-page error gate preserves stored errors before Auth cascade can erase them (599.2144ms)"},{"id":"app-shared-93d4cad6#line-14-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":14,"end":14},"valueSha256":"589523294cb6893e692c49a32bd221c46f169eae04cd94c56f67c3a3824a228d","matched":true,"value":"✔ registration before a preparation failure still closes the real page and reads back zero owned listeners (168.9285ms)"},{"id":"app-shared-93d4cad6#line-15-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":15,"end":15},"valueSha256":"5e48919ba42256e2810a2983fbb5eb86b83f8418805759fc60929ba01c98aeb2","matched":true,"value":"✔ a real retained callback fails removal readback without preventing the other owned listener cleanup (155.9455ms)"},{"id":"app-shared-93d4cad6#line-16-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":16,"end":16},"valueSha256":"55c8d0ebacfdb47ee382c03899ae286ea66de3364e669b55b695294b6e6072ff","matched":true,"value":"✔ a registration that adds its callback and then throws remains owned for failure cleanup (145.319ms)"},{"id":"app-shared-93d4cad6#line-18-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":18,"end":18},"valueSha256":"10ecb3d745d5c74eb757e1203b73ea0a5322a565367eab918d254ececb330ad0","matched":true,"value":"✔ real DOM and IndexedDB controls mutate owned targets and restore the same observations (910.098ms)"},{"id":"app-shared-93d4cad6#line-22-failure-diagnostic","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":22,"end":22},"valueSha256":"49a23bbe360ee13ef12e15fece3518a84ee94a2901140f914b28a5e0cead75d9","matched":true,"value":"✔ an RPC that never finishes fails at its ten-second budget with pending evidence (10537.7358ms)"},{"id":"app-shared-93d4cad6#line-23-failure-diagnostic","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":23,"end":23},"valueSha256":"31ef4340b920e2489ae8f0c8fe687caf82962cdc16724d6f80a718a533688e4c","matched":true,"value":"✔ viewport diagnostics retain real reload/request identity, declared hold phases and the first failure before cleanup (4618.138ms)"},{"id":"app-shared-93d4cad6#line-24-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":24,"end":24},"valueSha256":"fbb2df7cf6879913f99ebf86b0e08b8cb3dec6be16b93753a8ce51b18826f33f","matched":true,"value":"✔ native and explicitly owned viewport contexts produce settled cleanup evidence after success and body failure (8762.4037ms)"},{"id":"app-shared-93d4cad6#line-25-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"현재 후보의 독립 Chromium 회귀 실행 원문. 해당 CASE의 목표·준비·완료는 별도 실제 관측과 대조한다.","artifact":"log","path":"quality-app-current-shared-browser.log","artifactSha256":"20fadce8c589e6cde2ec14bf78aa9326c96f114c54fb09fc856f6e37647b8aec","lines":{"start":25,"end":25},"valueSha256":"b7679376a0c90cde1ec9365fe57c300f05260b652e460905b93dac630ea6f148","matched":true,"value":"✔ actual DOM and CSS controls fail the same reader and restore values, child nodes, and listeners (713.9324ms)"},{"id":"app-node-93d4cad6#line-1548-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/boundedWait.test.mjs:7 의 'condition waits clear their timer after success, rejection and timeout without hiding the original error' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1548,"end":1548},"valueSha256":"868d87c093daeb48c10b81e898ae97d2ef7d2bdd5d131bb2f5f43d6c0caba956","matched":true,"value":"✔ condition waits clear their timer after success, rejection and timeout without hiding the original error (3.6176ms)"},{"id":"app-node-93d4cad6#line-1551-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 tests/react/boundedWait.test.mjs:62 의 'cleanup cancels active signal timers and unused signals create no rejecting work' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1551,"end":1551},"valueSha256":"0bf4dbd250b8b68fd4d8745f063b78275415da5e5b3212bad55931cbf7bcd2f4","matched":true,"value":"✔ cleanup cancels active signal timers and unused signals create no rejecting work (2.4797ms)"},{"id":"app-node-93d4cad6#line-1602-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/caseStatsDrainer.test.mjs:81 의 'CASE budget cannot exceed ten seconds and cancellable sessions cannot target remote databases' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1602,"end":1602},"valueSha256":"d325d6ae66ab2e418982d78e3eb4be25b0c2a6ccde4f5f8726f922bb8517e7d3","matched":true,"value":"✔ CASE budget cannot exceed ten seconds and cancellable sessions cannot target remote databases (1.6232ms)"},{"id":"app-node-93d4cad6#line-1603-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/caseStatsDrainer.test.mjs:86 의 'an outer deadline shrinks the drain budget, cancels its work and awaits actual cleanup before rejecting' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1603,"end":1603},"valueSha256":"775d97bc5c3ab4e00f116fb7d9b6d4b46da73da18cc9f60d7b9d41db83652e1a","matched":true,"value":"✔ an outer deadline shrinks the drain budget, cancels its work and awaits actual cleanup before rejecting (0.9608ms)"},{"id":"app-node-93d4cad6#line-1598-failure-diagnostic","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"*","explanation":"실제 tests/react/caseDiagnostic.test.mjs:10 의 'real Playwright teardown timeout preserves the first failure in one diagnostic attachment' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1598,"end":1598},"valueSha256":"ea1183bfe870f5fd1a193ee04ed491c41166734187945096672c3f0a34eb6a72","matched":true,"value":"✔ real Playwright teardown timeout preserves the first failure in one diagnostic attachment (4990.3702ms)"},{"id":"app-node-93d4cad6#line-1620-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/checkpointEvidence.test.mjs:18 의 'checkpoint proof rejects missing, empty, duplicated, swallowed and unawaited assertions' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1620,"end":1620},"valueSha256":"e68e4baacdd3264cb11dd89e576015681d6678bac8feabbff2008750a71e8258","matched":true,"value":"✔ checkpoint proof rejects missing, empty, duplicated, swallowed and unawaited assertions (8.1507ms)"},{"id":"app-node-93d4cad6#line-1622-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/checkpointEvidence.test.mjs:47 의 'only completed framework poll samples are exempt from swallowed assertion failures' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1622,"end":1622},"valueSha256":"954b0e9ac46e261af3bb0eff2c7897e3ce02b63345e685b64e65926bd88d5524","matched":true,"value":"✔ only completed framework poll samples are exempt from swallowed assertion failures (1.3103ms)"},{"id":"app-node-93d4cad6#line-1623-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/checkpointEvidence.test.mjs:81 의 'real Playwright events fail the run when a passing test bypasses a required assertion' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1623,"end":1623},"valueSha256":"3359cbc01c7d1cc5dc03aa280be1b4e03ffdbde01578e2a0dae56a84e5f35ccc","matched":true,"value":"✔ real Playwright events fail the run when a passing test bypasses a required assertion (19550.7621ms)"},{"id":"app-node-93d4cad6#line-1713-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 tests/react/cleanupScope.test.mjs:5 의 'owned cleanup covers early failure and releases every resource in registration order' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1713,"end":1713},"valueSha256":"8ea9aca9657d4e64545952e681137807488097f49e570567daecb4fa72082341","matched":true,"value":"✔ owned cleanup covers early failure and releases every resource in registration order (3.1609ms)"},{"id":"app-node-93d4cad6#line-1714-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 tests/react/cleanupScope.test.mjs:19 의 'cleanup timeout stays failed, exposes pending work, aborts and still closes the next resource' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":1714,"end":1714},"valueSha256":"df68d3b0d4727cf75432d9b618cd745aade927862ac135bb0d35cdaf889d0f8e","matched":true,"value":"✔ cleanup timeout stays failed, exposes pending work, aborts and still closes the next resource (22.617ms)"},{"id":"app-node-93d4cad6#line-3948-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/qualityControl.test.mjs:38 의 'surviving, unapplied and exception-only mutations fail and still restore the owned state' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3948,"end":3948},"valueSha256":"327f82f08d45a8fa67184b92fcfeb431c7437d89067b0bcf2f0e6042af4f730b","matched":true,"value":"✔ surviving, unapplied and exception-only mutations fail and still restore the owned state (5.8414ms)"},{"id":"app-node-93d4cad6#line-3951-failure-diagnostic","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"*","explanation":"실제 tests/react/qualityControl.test.mjs:94 의 'failure values redact credentials and URL parameters while preserving useful expected/actual numbers' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3951,"end":3951},"valueSha256":"06d2f71164cad7cba6b6978da3a9dbb64155585feee16ac6c4970c25c93b7895","matched":true,"value":"✔ failure values redact credentials and URL parameters while preserving useful expected/actual numbers (0.3611ms)"},{"id":"app-node-93d4cad6#line-3952-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/qualityControl.test.mjs:101 의 'a control reader deadline fails without converting timeout into defect detection' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3952,"end":3952},"valueSha256":"a714226340447d20f3f3e4c335ac12683036d2a850aaee0a98c1af8bc2f164ee","matched":true,"value":"✔ a control reader deadline fails without converting timeout into defect detection (26.7975ms)"},{"id":"app-node-93d4cad6#line-3953-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/qualityControl.test.mjs:121 의 'one response rule affecting a second read is rejected instead of reporting a single injection' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3953,"end":3953},"valueSha256":"39c1eba1e0fb0b0d76a32604975b950951b908ecd017219056370e559a9c3fd9","matched":true,"value":"✔ one response rule affecting a second read is rejected instead of reporting a single injection (5.0397ms)"},{"id":"app-node-93d4cad6#line-3954-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/qualityControl.test.mjs:133 의 'an expected error-body control preserves the exact status and rejects unrelated transport failures' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3954,"end":3954},"valueSha256":"9fe7d08e5d359fe44fc39f762b5322d5663d7b0413de885408b6e88e9d028136","matched":true,"value":"✔ an expected error-body control preserves the exact status and rejects unrelated transport failures (5.7997ms)"},{"id":"app-node-93d4cad6#line-4446-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/requiredE2eEvidence.test.mjs:30 의 'all required cases across shards need first-attempt journey and cleanup proof' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":4446,"end":4446},"valueSha256":"4341732e0bf776f3cf2a7becc25f8219fadfd07bb357b6154e328a89459463cb","matched":true,"value":"✔ all required cases across shards need first-attempt journey and cleanup proof (109.2374ms)"},{"id":"app-node-93d4cad6#line-4447-failure-diagnostic","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"*","explanation":"실제 tests/react/requiredE2eEvidence.test.mjs:83 의 'evidence redaction preserves every structural entry while removing sensitive diagnostic values' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":4447,"end":4447},"valueSha256":"bf3bdb95b7fb92a612d279916bc9fe0b05469b72a47a773fbd20aacdba4d5fd7","matched":true,"value":"✔ evidence redaction preserves every structural entry while removing sensitive diagnostic values (7.343ms)"},{"id":"app-node-93d4cad6#line-4448-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/requiredE2eEvidence.test.mjs:102 의 'the reporter does not turn skipped, expected-failure or retried tests into evidence' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":4448,"end":4448},"valueSha256":"dcfdbc44a6ade9c9033934f5b312d94e6fca635d0089ae9525cec577f3195bab","matched":true,"value":"✔ the reporter does not turn skipped, expected-failure or retried tests into evidence (0.824ms)"},{"id":"app-node-93d4cad6#line-2287-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/errorCaseQualityRegistry.test.mjs:25 의 'the source gate rejects missing, detached, duplicated and mismatched controls' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":2287,"end":2287},"valueSha256":"c7b614102cd0e2753c92cac6c81ecf24dde03d07306e8a89296b2e1eab6e1f77","matched":true,"value":"✔ the source gate rejects missing, detached, duplicated and mismatched controls (2.4928ms)"},{"id":"app-node-93d4cad6#line-5088-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 tests/react/viewportQuality.test.mjs:91 의 'owned viewport cleanup attempts later contexts after an earlier close fails' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":5088,"end":5088},"valueSha256":"c79bfe475ffe4c909e81acac50cec8e7d6ccb5f9dd831b15f5c05d8ced2e75e9","matched":true,"value":"✔ owned viewport cleanup attempts later contexts after an earlier close fails (0.6139ms)"},{"id":"app-node-93d4cad6#line-5089-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 tests/react/viewportQuality.test.mjs:103 의 'owned viewport cleanup rejects a close that leaves its context open' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":5089,"end":5089},"valueSha256":"7bfccc151a5381e6e9e284719f613c657fe0ca483e8ba3604223edba8f3a80d8","matched":true,"value":"✔ owned viewport cleanup rejects a close that leaves its context open (1.6832ms)"},{"id":"app-node-93d4cad6#line-5090-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 tests/react/viewportQuality.test.mjs:110 의 'owned viewport cleanup also waits for a context whose creation was still pending' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":5090,"end":5090},"valueSha256":"d0417e57e8bb4613d8d4321f9794b51a5b83acd9dbccf982e19d19add741c2fc","matched":true,"value":"✔ owned viewport cleanup also waits for a context whose creation was still pending (0.4979ms)"},{"id":"app-node-93d4cad6#line-5091-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 tests/react/viewportQuality.test.mjs:127 의 'context acquisition failure remains in cleanup evidence and does not prevent later context cleanup' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":5091,"end":5091},"valueSha256":"556d0ec072f9e5be652dc10929085de7e931636be42fb401d9524e8371fddf84","matched":true,"value":"✔ context acquisition failure remains in cleanup evidence and does not prevent later context cleanup (14.4421ms)"},{"id":"app-node-93d4cad6#line-3845-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:30 의 'only a dedicated local sandbox can be selected' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3845,"end":3845},"valueSha256":"660b24a6c8c915f6d05ed7cb0a27acf4c474a07e79a6ca4a565d06abe7d1cbcb","matched":true,"value":"✔ only a dedicated local sandbox can be selected (121.0634ms)"},{"id":"app-node-93d4cad6#line-3846-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:51 의 'expired SQL budget rejects before any Docker invocation' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3846,"end":3846},"valueSha256":"ddb94f3cd5b35e9e10182cffd53b7da3ac49925d5682114d2e748d0f6f28ba53","matched":true,"value":"✔ expired SQL budget rejects before any Docker invocation (0.9274ms)"},{"id":"app-node-93d4cad6#line-3846-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:51 의 'expired SQL budget rejects before any Docker invocation' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3846,"end":3846},"valueSha256":"ddb94f3cd5b35e9e10182cffd53b7da3ac49925d5682114d2e748d0f6f28ba53","matched":true,"value":"✔ expired SQL budget rejects before any Docker invocation (0.9274ms)"},{"id":"app-node-93d4cad6#line-3847-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:56 의 'restore always runs and preserves both the original and cleanup failure' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3847,"end":3847},"valueSha256":"35ec0f84ef74941bef95ae604ba121dcd77ab03713a2f711378b533581b1b566","matched":true,"value":"✔ restore always runs and preserves both the original and cleanup failure (0.8926ms)"},{"id":"app-node-93d4cad6#line-3847-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:56 의 'restore always runs and preserves both the original and cleanup failure' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3847,"end":3847},"valueSha256":"35ec0f84ef74941bef95ae604ba121dcd77ab03713a2f711378b533581b1b566","matched":true,"value":"✔ restore always runs and preserves both the original and cleanup failure (0.8926ms)"},{"id":"app-node-93d4cad6#line-3848-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:66 의 'goal source reference is exact and cannot silently match two assertions' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3848,"end":3848},"valueSha256":"c5b2206d998f64ee3a8ae6826d675eb8af57e2133a26627c6c5fde722a37fbcc","matched":true,"value":"✔ goal source reference is exact and cannot silently match two assertions (29.2514ms)"},{"id":"app-node-93d4cad6#line-3849-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:88 의 'normal, exact target mutant and restored normal have separate accepted judgments' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3849,"end":3849},"valueSha256":"d1432aef57f6089a512f42234bed11eace51bf8f1b1c9d74cfcde1bd3b30bd74","matched":true,"value":"✔ normal, exact target mutant and restored normal have separate accepted judgments (2.2297ms)"},{"id":"app-node-93d4cad6#line-3863-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:114 의 'the other mandatory admin scenario cannot fail unnoticed' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3863,"end":3863},"valueSha256":"2a54aaffea36dd77d03da5e102a74863510308e30d8770b96efd3fe2b5aa7f15","matched":true,"value":"✔ the other mandatory admin scenario cannot fail unnoticed (0.3039ms)"},{"id":"app-node-93d4cad6#line-3863-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:114 의 'the other mandatory admin scenario cannot fail unnoticed' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3863,"end":3863},"valueSha256":"2a54aaffea36dd77d03da5e102a74863510308e30d8770b96efd3fe2b5aa7f15","matched":true,"value":"✔ the other mandatory admin scenario cannot fail unnoticed (0.3039ms)"},{"id":"app-node-93d4cad6#line-3864-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:120 의 'a neighbouring timeout option in the native code frame is not an actual timeout' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3864,"end":3864},"valueSha256":"da01b3800b2f88a337c33fc57dba8730ccef42504f08fa5a467ffcf0c27c35bf","matched":true,"value":"✔ a neighbouring timeout option in the native code frame is not an actual timeout (0.3128ms)"},{"id":"app-node-93d4cad6#line-3864-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:120 의 'a neighbouring timeout option in the native code frame is not an actual timeout' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3864,"end":3864},"valueSha256":"da01b3800b2f88a337c33fc57dba8730ccef42504f08fa5a467ffcf0c27c35bf","matched":true,"value":"✔ a neighbouring timeout option in the native code frame is not an actual timeout (0.3128ms)"},{"id":"app-node-93d4cad6#line-3865-helper-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"helper-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:126 의 'a real timeout in error prose still fails with a surrounding code frame' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3865,"end":3865},"valueSha256":"3e88c1fd2e521e4c29d2a8d6553b2ac3cee00f8027532b971b549650eb36b7d2","matched":true,"value":"✔ a real timeout in error prose still fails with a surrounding code frame (0.4115ms)"},{"id":"app-node-93d4cad6#line-3865-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 tests/react/productMutantExperiment.test.mjs:126 의 'a real timeout in error prose still fails with a surrounding code frame' 실행.모든CASE고유결함의탐지력으로대체하지않음.","artifact":"log","path":"quality-phase2-current-check.log","artifactSha256":"5f718d0a264d4682ec08333d9442fc5822fe4fecbc5bdb28105a15bbbfa1cfc1","lines":{"start":3865,"end":3865},"valueSha256":"3e88c1fd2e521e4c29d2a8d6553b2ac3cee00f8027532b971b549650eb36b7d2","matched":true,"value":"✔ a real timeout in error prose still fails with a surrounding code frame (0.4115ms)"},{"id":"case056-atomicity-normal#run-id","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"해당 phase의 실제 runId","artifact":"product","path":"product-mutant.json","artifactSha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c","pointer":"/runId","valueSha256":"5ff6db16fafc6c54acb0a2cd5cfdee3aaeede2d9b2cd29314f345d61fa14c136","matched":true,"value":"4928a0ae-236c-4bde-800e-97a36e1498ca-normal"},{"id":"case056-atomicity-normal#goal-matched","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"representative-normal","caseId":"CASE-056","explanation":"기존 목표 단언에 넘긴 actual/expected의 실제 일치 여부","artifact":"product","path":"product-mutant.json","artifactSha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-atomicity-normal#goal-target","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"변경하지 않은 목표 단언 파일/행","artifact":"product","path":"product-mutant.json","artifactSha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c","pointer":"/observations/0/target","valueSha256":"5d4e89f1f35946e13c880632865b57e34d7745d164614f16f24f0f753a59f056","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","line":111}},{"id":"case056-atomicity-normal#goal-expected","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"일회용 ID 또는 고정 SQLSTATE 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c","pointer":"/observations/0/expected","valueSha256":"712377d59d3448eb0b3cb35a5dee63860f18132948a4e58944bdfa3aee69b36e","matched":true,"value":["063bdc35-805c-4682-b4c4-7583c918f501"]},{"id":"case056-atomicity-normal#goal-actual","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"동일 reader의 실제 값","artifact":"product","path":"product-mutant.json","artifactSha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c","pointer":"/observations/0/actual","valueSha256":"712377d59d3448eb0b3cb35a5dee63860f18132948a4e58944bdfa3aee69b36e","matched":true,"value":["063bdc35-805c-4682-b4c4-7583c918f501"]},{"id":"case056-atomicity-normal#sql-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 SQL 정의·owner·ACL 비교가 통과한 뒤 기록됨","artifact":"product","path":"product-mutant.json","artifactSha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-atomicity-normal#sql-restored-hash","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"복원 후 실제 SQL definition hash","artifact":"product","path":"product-mutant.json","artifactSha256":"fb626c4f8e756feda588e25048520bc5cdccafb03acccff89e2c72cf1c51931c","pointer":"/restoredHash","valueSha256":"f1c66d033373fdfe9f9562f353150f0a83649a9eb2b01563ee35c0e6b43e59da","matched":true,"value":"05dd2cdb98b2c9ebab550777f0f0710eef1253d10e7cdb9fa2abf5c0b125e8c4"},{"id":"case056-atomicity-normal#report-problems","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"필수2시나리오 실제 assertion event를 대조한 reporter 오류 없음","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/problems","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-normal#scenario-0-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/proofs","valueSha256":"9ac6af884d6503563ac52a83f25012661c0bd2f507cf6fe9954a7a04a3959c74","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"initial-import","status":"passed"},{"id":"overlap-rejection","status":"passed"},{"id":"corrected-import","status":"passed"},{"id":"canonical-readback","status":"passed"},{"id":"reload-reentry","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-atomicity-normal#scenario-0-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/cleanup","valueSha256":"db25b1dba7bb679f0173b8eb81c6fe5d7ad1b0e0cf3bd86935c08f69c698243c","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":5},{"id":"admin-membership","status":"passed","settled":true,"durationMs":12},{"id":"disposable-user","status":"passed","settled":true,"durationMs":81},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":9},{"id":"auth-session","status":"passed","settled":true,"durationMs":13},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-atomicity-normal#scenario-0-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-normal#scenario-0-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/durationMs","valueSha256":"27bb55ca7d1e8404f09fe32cd45c380b462107b39f2dee0c3e2193e25afdf1f6","matched":true,"value":2280},{"id":"case056-atomicity-normal#scenario-0-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/environment","valueSha256":"0eaf19a9ba321c1b4ab35c4b382b18ce5096080647e89a1293ad60eb28d250a2","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:17.835Z"}},{"id":"case056-atomicity-normal#scenario-0-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-normal#scenario-0-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-normal#scenario-0-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/requests","valueSha256":"9b249aaeadd53fb8c9c3b009218234854a905d003ae2fb7a09d0f3c863bf1d5b","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"prepare","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1039.2607,"settledAtMs":1069.7512},{"id":2,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1072.7597,"settledAtMs":1137.7004},{"id":3,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1142.2496,"settledAtMs":1189.4519},{"id":4,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1213.0272,"settledAtMs":1223.8738},{"id":5,"tab":"admin","generation":2,"phase":"initial-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1395.5417,"settledAtMs":1443.4443},{"id":6,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1447.5646,"settledAtMs":1499.2541},{"id":7,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1501.8107,"settledAtMs":1611.6161},{"id":8,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1611.6932,"settledAtMs":1611.7764},{"id":9,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1611.7359,"settledAtMs":1611.8061},{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1909.509,"settledAtMs":1920.2088},{"id":11,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1929.0439,"settledAtMs":1938.1233},{"id":12,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1938.5814,"settledAtMs":1961.8868},{"id":13,"tab":"admin","generation":2,"phase":"corrected-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2375.4846,"settledAtMs":2428.7645},{"id":14,"tab":"admin","generation":2,"phase":"corrected-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2432.7067,"settledAtMs":2494.8317},{"id":15,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2495.6,"settledAtMs":2550.2698},{"id":16,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2555.9167,"settledAtMs":2562.8858},{"id":17,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2556.0177,"settledAtMs":2566.9003},{"id":18,"tab":"admin","generation":3,"phase":"reload-reentry","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2621.2609,"settledAtMs":2629.8968},{"id":19,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2630.6847,"settledAtMs":2682.901},{"id":20,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2684.7177,"settledAtMs":2727.3562},{"id":21,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2741.2703,"settledAtMs":2746.8573}]},{"id":"case056-atomicity-normal#scenario-0-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-atomicity-normal#scenario-0-overlap-9","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"실제 혼합 중복 업로드 POST 상태/terminal/발생 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/requests/9","valueSha256":"83905a3f856fae5145e6c8057d2ccd4606aef00172a58d28b4c851d5c94eb3a4","matched":true,"value":{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1909.509,"settledAtMs":1920.2088}},{"id":"case056-atomicity-normal#scenario-0-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/0/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-atomicity-normal#scenario-1-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/proofs","valueSha256":"fd5fe3aa4fe19d1e78020102736328c65a2c0e103ec3598cf638e9df284aeed6","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"ui-denial","status":"passed"},{"id":"rpc-denial","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-atomicity-normal#scenario-1-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/cleanup","valueSha256":"22846e9d489f420bafbaa45fdb8364fe3da431e18a6861e9d216a8dd2f28dfc0","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":2},{"id":"admin-membership","status":"passed","settled":true,"durationMs":9},{"id":"disposable-user","status":"passed","settled":true,"durationMs":66},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":9},{"id":"auth-session","status":"passed","settled":true,"durationMs":11},{"id":"browser-observer","status":"passed","settled":true,"durationMs":3}]},{"id":"case056-atomicity-normal#scenario-1-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-normal#scenario-1-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/durationMs","valueSha256":"25dac95b8f595046bc435139636b0e2f1ff6e0ea31a54f3c19e7e726fb98738b","matched":true,"value":387},{"id":"case056-atomicity-normal#scenario-1-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/environment","valueSha256":"3c8e2588d279db8e2eb7e61f340e5554434192ff96c4e4598a2d5d23b221fd00","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:20.199Z"}},{"id":"case056-atomicity-normal#scenario-1-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-normal#scenario-1-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-normal#scenario-1-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/requests","valueSha256":"d504d066729aec2cc9238c58f8be13839c0ac02bb67a64a11ecb9f1181c5bb7e","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"ui-denial","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":3326.6028,"settledAtMs":3349.0014}]},{"id":"case056-atomicity-normal#scenario-1-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-atomicity-normal#scenario-1-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"9f8880cdc1453a2a280d5dcccfb370a6ce9749391f2f001ae67b9bdbf0663117","pointer":"/cases/1/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-atomicity-mutant#run-id","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"해당 phase의 실제 runId","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/runId","valueSha256":"fba55697442d8f4e76d0d09dd3fd31cff49aecd5aa854ed635a7c716ca6357ff","matched":true,"value":"4928a0ae-236c-4bde-800e-97a36e1498ca-mutant"},{"id":"case056-atomicity-mutant#goal-matched","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"representative-negative","caseId":"CASE-056","explanation":"기존 목표 단언에 넘긴 actual/expected의 실제 일치 여부","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/observations/0/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case056-atomicity-mutant#goal-target","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"변경하지 않은 목표 단언 파일/행","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/observations/0/target","valueSha256":"5d4e89f1f35946e13c880632865b57e34d7745d164614f16f24f0f753a59f056","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","line":111}},{"id":"case056-atomicity-mutant#goal-expected","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"일회용 ID 또는 고정 SQLSTATE 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/observations/0/expected","valueSha256":"2e56906261a01249767a2db1a1f396e5093558fca4910424d47e40c9cfc2ae6a","matched":true,"value":["a32e558a-eea3-4cc0-96f4-6463cd959eb5"]},{"id":"case056-atomicity-mutant#goal-actual","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"동일 reader의 실제 값","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/observations/0/actual","valueSha256":"2d2df532c294c43e5d11edc6ffb5c00b713f4272a0f645c7f00e2783cefd516b","matched":true,"value":["a32e558a-eea3-4cc0-96f4-6463cd959eb5","3e6dbf36-fa1f-403f-be89-0978c84e3342"]},{"id":"case056-atomicity-mutant#sql-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 SQL 정의·owner·ACL 비교가 통과한 뒤 기록됨","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-atomicity-mutant#sql-restored-hash","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"복원 후 실제 SQL definition hash","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/restoredHash","valueSha256":"f1c66d033373fdfe9f9562f353150f0a83649a9eb2b01563ee35c0e6b43e59da","matched":true,"value":"05dd2cdb98b2c9ebab550777f0f0710eef1253d10e7cdb9fa2abf5c0b125e8c4"},{"id":"case056-atomicity-mutant#sql-applied","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"fault-applied","caseId":"CASE-056","explanation":"실제 DB function snapshot이 원래와 달라진 hash","artifact":"product","path":"product-mutant.json","artifactSha256":"732cf1cf3994bcadecb0fc02318989dcd5e20cff0dda0ac40bd633357aa8c767","pointer":"/changedHash","valueSha256":"b607317ecb8cefed25fc9a7d5301e6e6768b588f39ff55077b956df2f60e64da","matched":true,"value":"e1b953f9a6cc598fa4dd92e28b43e4ed43c95f41bc6d820fcd07bfba5b2fcc5c"},{"id":"case056-atomicity-mutant#scenario-0-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-failure-path","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/evidence/cleanup","valueSha256":"b3cdc26cc8e6f644497410190ce73f925db1ec0d604a2bcdcde61d3e3e3d05bd","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":6},{"id":"admin-membership","status":"passed","settled":true,"durationMs":24},{"id":"disposable-user","status":"passed","settled":true,"durationMs":85},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":10},{"id":"auth-session","status":"passed","settled":true,"durationMs":12},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-atomicity-mutant#scenario-0-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-mutant#scenario-0-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/durationMs","valueSha256":"bebcee2abff6b6f2e04afac2869e7edec0bf441979a6b183b430f9e1e3d7b9c0","matched":true,"value":2492},{"id":"case056-atomicity-mutant#scenario-0-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/evidence/environment","valueSha256":"5d6443cacd68bc07e245a66812831d47063b6db42d70384bfd64e4f33638a550","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:22.912Z"}},{"id":"case056-atomicity-mutant#scenario-0-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/evidence/primaryErrors","valueSha256":"4334e7459c8440f185f1d3d5d17d4496f3385bca1202855d93fd9c87dbb9896f","matched":true,"value":{"count":1,"kinds":["error"]}},{"id":"case056-atomicity-mutant#scenario-0-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-mutant#scenario-0-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/evidence/requests","valueSha256":"9a4e6bdf237a92ef2a9502efe079066818975f520b4928b57829f6796c4864d5","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"prepare","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1060.7885,"settledAtMs":1080.0231},{"id":2,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1085.0322,"settledAtMs":1144.8437},{"id":3,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1147.3366,"settledAtMs":1196.5066},{"id":4,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1220.1884,"settledAtMs":1232.2585},{"id":5,"tab":"admin","generation":2,"phase":"initial-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1420.3979,"settledAtMs":1457.8161},{"id":6,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1463.5112,"settledAtMs":1525.3886},{"id":7,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1528.0068,"settledAtMs":1609.9967},{"id":8,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1610.099,"settledAtMs":1610.1979},{"id":9,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1610.1528,"settledAtMs":1610.2274},{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2484.3644,"settledAtMs":2539.4112},{"id":11,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2558.5967,"settledAtMs":2603.7656},{"id":12,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2606.3909,"settledAtMs":2684.627},{"id":13,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2693.4838,"settledAtMs":2699.7018},{"id":14,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2693.5217,"settledAtMs":2703.4178}]},{"id":"case056-atomicity-mutant#scenario-0-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-atomicity-mutant#scenario-0-overlap-9","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"실제 혼합 중복 업로드 POST 상태/terminal/발생 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/0/evidence/requests/9","valueSha256":"77257149f13c27336fa1e285df94151a584e74003edf45d2e6e72610602b8762","matched":true,"value":{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2484.3644,"settledAtMs":2539.4112}},{"id":"case056-atomicity-mutant#scenario-0-first-error","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"원본 native 첫 실패: 목표 단언 기대/실제와 소스 위치, 실제 사용자 자료가 아닌 disposable fixture값","artifact":"native","path":"native-results.json","artifactSha256":"30387f971065368dd5fba5158409a4a232a853802bbc9412cceb0b603eda2578","pointer":"/suites/0/specs/0/tests/0/results/0/errors/0","valueSha256":"6e6f5d780d153c58359e72327c3b34bedafc10585433c5fd7e8f8a284f44aa38","matched":true,"value":{"location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","column":28,"line":111},"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  - 0\u001b[39m\n\u001b[31m+ Received  + 6\u001b[39m\n\n\u001b[33m@@ -3,6 +3,12 @@\u001b[39m\n\u001b[2m      \"id\": \"a32e558a-eea3-4cc0-96f4-6463cd959eb5\",\u001b[22m\n\u001b[2m      \"server_revision\": 1,\u001b[22m\n\u001b[2m      \"source_ref\": \"motra:case056:first\",\u001b[22m\n\u001b[2m      \"title\": \"CASE056 first dd81f3de-19fc-4f08-9219-0b419024fea3\",\u001b[22m\n\u001b[2m    },\u001b[22m\n\u001b[31m+   Object {\u001b[39m\n\u001b[31m+     \"id\": \"3e6dbf36-fa1f-403f-be89-0978c84e3342\",\u001b[39m\n\u001b[31m+     \"server_revision\": 1,\u001b[39m\n\u001b[31m+     \"source_ref\": \"motra:case056:second\",\u001b[39m\n\u001b[31m+     \"title\": \"CASE056 second dd81f3de-19fc-4f08-9219-0b419024fea3\",\u001b[39m\n\u001b[31m+   },\u001b[39m\n\u001b[2m  ]\u001b[22m\n\n  109 |       const afterOverlap = await read();\n  110 |       await productMutation.observe({ expected: initial.map(row => row.id), actual: afterOverlap.map(row => row.id), target: goalLocation(new URL(\"./CASE-056-motra-ui-import-atomic-recovery.spec.mjs\", import.meta.url), \"expect(afterOverlap).toEqual(initial)\") });\n> 111 |       expect(afterOverlap).toEqual(initial);\n      |                            ^\n  112 |       expect(await rawSessionFacts(c.service, initial[0].id)).toEqual(before);\n  113 |       await expect(view.locator('[data-lg-hook=\"adminMotraImportResult\"]')).toContainText(\"인입 실패\");\n  114 |       await expect(page.locator(\".lg-toast-pop.error\")).toContainText(\"이미 인입된 모트라 데이터가 있어요. 먼저 기존 인입을 제거한 뒤 다시 시도해 주세요.\");\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs:111:28\n    at runWithRestoration (C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\support\\productMutantExperiment.mjs:106:17)\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs:105:5\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\support\\fixture.mjs:49:31\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs:102:3"}},{"id":"case056-atomicity-mutant#scenario-1-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/evidence/cleanup","valueSha256":"7b97feca23ad15c4a42dbc3b94716919474125b909ca3d7640dd0163c147a587","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":6},{"id":"admin-membership","status":"passed","settled":true,"durationMs":10},{"id":"disposable-user","status":"passed","settled":true,"durationMs":73},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":9},{"id":"auth-session","status":"passed","settled":true,"durationMs":14},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-atomicity-mutant#scenario-1-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-mutant#scenario-1-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/durationMs","valueSha256":"ac1270c5058af65025e5b2a3e3014cea69460e7d9f159ae667028e1b6eab433e","matched":true,"value":495},{"id":"case056-atomicity-mutant#scenario-1-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/evidence/environment","valueSha256":"3be59ceafd27843915b01e5df8f71a0c597dde6c0502fda51ddfc6fdc3389554","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:26.177Z"}},{"id":"case056-atomicity-mutant#scenario-1-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-mutant#scenario-1-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-mutant#scenario-1-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/evidence/requests","valueSha256":"5376503e74a43216b2f0269f4ca76c70185903a86c0600f13b6e0400df8a6753","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"ui-denial","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":948.5976,"settledAtMs":974.6109}]},{"id":"case056-atomicity-mutant#scenario-1-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-atomicity-mutant#scenario-1-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"03987060607fd35129d85eba2331ad9312667a8257e44d0ce5319b73c5d6b793","pointer":"/cases/1/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-atomicity-restored#run-id","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"해당 phase의 실제 runId","artifact":"product","path":"product-mutant.json","artifactSha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b","pointer":"/runId","valueSha256":"a69f7009379e16bb4c1fb52953b5557e54b067f6d8621f85562f5dde0f98ff1c","matched":true,"value":"4928a0ae-236c-4bde-800e-97a36e1498ca-restored"},{"id":"case056-atomicity-restored#goal-matched","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"representative-restored","caseId":"CASE-056","explanation":"기존 목표 단언에 넘긴 actual/expected의 실제 일치 여부","artifact":"product","path":"product-mutant.json","artifactSha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-atomicity-restored#goal-target","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"변경하지 않은 목표 단언 파일/행","artifact":"product","path":"product-mutant.json","artifactSha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b","pointer":"/observations/0/target","valueSha256":"5d4e89f1f35946e13c880632865b57e34d7745d164614f16f24f0f753a59f056","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","line":111}},{"id":"case056-atomicity-restored#goal-expected","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"일회용 ID 또는 고정 SQLSTATE 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b","pointer":"/observations/0/expected","valueSha256":"70bb91b3769904e2e4c3851fa0dab5c0e33b765098e1dd317aa056e1c6f49ff3","matched":true,"value":["405642e9-6129-4cd0-89ba-25e9a1e4e206"]},{"id":"case056-atomicity-restored#goal-actual","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"동일 reader의 실제 값","artifact":"product","path":"product-mutant.json","artifactSha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b","pointer":"/observations/0/actual","valueSha256":"70bb91b3769904e2e4c3851fa0dab5c0e33b765098e1dd317aa056e1c6f49ff3","matched":true,"value":["405642e9-6129-4cd0-89ba-25e9a1e4e206"]},{"id":"case056-atomicity-restored#sql-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 SQL 정의·owner·ACL 비교가 통과한 뒤 기록됨","artifact":"product","path":"product-mutant.json","artifactSha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-atomicity-restored#sql-restored-hash","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"복원 후 실제 SQL definition hash","artifact":"product","path":"product-mutant.json","artifactSha256":"a272d62639d6482d48c6c3fda2dce22025a03561758e323edcc10e8b65b3de6b","pointer":"/restoredHash","valueSha256":"f1c66d033373fdfe9f9562f353150f0a83649a9eb2b01563ee35c0e6b43e59da","matched":true,"value":"05dd2cdb98b2c9ebab550777f0f0710eef1253d10e7cdb9fa2abf5c0b125e8c4"},{"id":"case056-atomicity-restored#report-problems","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"필수2시나리오 실제 assertion event를 대조한 reporter 오류 없음","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/problems","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-restored#scenario-0-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/proofs","valueSha256":"9ac6af884d6503563ac52a83f25012661c0bd2f507cf6fe9954a7a04a3959c74","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"initial-import","status":"passed"},{"id":"overlap-rejection","status":"passed"},{"id":"corrected-import","status":"passed"},{"id":"canonical-readback","status":"passed"},{"id":"reload-reentry","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-atomicity-restored#scenario-0-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/cleanup","valueSha256":"c3f1fa08adcbf52b9767b641a55d70074b8c2b577c59f5f455178e96730231d6","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":5},{"id":"admin-membership","status":"passed","settled":true,"durationMs":102},{"id":"disposable-user","status":"passed","settled":true,"durationMs":92},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":9},{"id":"auth-session","status":"passed","settled":true,"durationMs":14},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-atomicity-restored#scenario-0-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-restored#scenario-0-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/durationMs","valueSha256":"188db7f5c98d585b6b31f7423462c613aa01f3e7149960f7d192480e09000619","matched":true,"value":2156},{"id":"case056-atomicity-restored#scenario-0-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/environment","valueSha256":"aa16d616a9c3932d9387cf35a69c09ec9e8cc2a645cf88a7f26494bc51c44269","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:28.849Z"}},{"id":"case056-atomicity-restored#scenario-0-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-restored#scenario-0-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-restored#scenario-0-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/requests","valueSha256":"c17b5e19a9f7166fde38d8232b2a167f826805fa8a178c97947720e5c2a860af","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"prepare","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":929.4774,"settledAtMs":949.7584},{"id":2,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":951.8688,"settledAtMs":1011.4601},{"id":3,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1014.1889,"settledAtMs":1061.9807},{"id":4,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1084.9697,"settledAtMs":1091.6885},{"id":5,"tab":"admin","generation":2,"phase":"initial-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1288.431,"settledAtMs":1325.6463},{"id":6,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1330.2243,"settledAtMs":1388.1888},{"id":7,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1389.8235,"settledAtMs":1433.1173},{"id":8,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1439.8043,"settledAtMs":1447.2159},{"id":9,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1439.8598,"settledAtMs":1452.3289},{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1819.3666,"settledAtMs":1831.5338},{"id":11,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1835.0219,"settledAtMs":1855.7928},{"id":12,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1855.9642,"settledAtMs":1865.4446},{"id":13,"tab":"admin","generation":2,"phase":"corrected-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2236.1339,"settledAtMs":2288.351},{"id":14,"tab":"admin","generation":2,"phase":"corrected-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2292.1887,"settledAtMs":2344.9462},{"id":15,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2347.0045,"settledAtMs":2394.0104},{"id":16,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2400.2753,"settledAtMs":2405.0319},{"id":17,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2400.4077,"settledAtMs":2408.3598},{"id":18,"tab":"admin","generation":3,"phase":"reload-reentry","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2458.0753,"settledAtMs":2461.1498},{"id":19,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2461.6233,"settledAtMs":2511.706},{"id":20,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2513.5392,"settledAtMs":2553.6972},{"id":21,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2568.1761,"settledAtMs":2573.0682}]},{"id":"case056-atomicity-restored#scenario-0-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-atomicity-restored#scenario-0-overlap-9","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"실제 혼합 중복 업로드 POST 상태/terminal/발생 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/requests/9","valueSha256":"146bbad13c05a3204efed9eaef92f2650bdd11a9f606c5f1eb70270832a969fe","matched":true,"value":{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1819.3666,"settledAtMs":1831.5338}},{"id":"case056-atomicity-restored#scenario-0-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/0/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-atomicity-restored#scenario-1-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/proofs","valueSha256":"fd5fe3aa4fe19d1e78020102736328c65a2c0e103ec3598cf638e9df284aeed6","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"ui-denial","status":"passed"},{"id":"rpc-denial","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-atomicity-restored#scenario-1-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/cleanup","valueSha256":"92fa24bf79de7c879d55b1bc2d5ff2e8ebf5e03d0b96af156e4106232eaced8c","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":2},{"id":"admin-membership","status":"passed","settled":true,"durationMs":8},{"id":"disposable-user","status":"passed","settled":true,"durationMs":67},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":10},{"id":"auth-session","status":"passed","settled":true,"durationMs":13},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-atomicity-restored#scenario-1-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-atomicity-restored#scenario-1-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/durationMs","valueSha256":"188c1fdca79d927f6e812133173fc41d3a4e57074de521020274caa9bb29af7d","matched":true,"value":398},{"id":"case056-atomicity-restored#scenario-1-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/environment","valueSha256":"cfd12580e78b46e64780adc82238572b7c5638ec934392051976a86b0f1b1360","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:31.234Z"}},{"id":"case056-atomicity-restored#scenario-1-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-restored#scenario-1-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-atomicity-restored#scenario-1-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/requests","valueSha256":"b5581e98b8a8d8fcfe97e0af293597d43ae3db38bef5dacc0e5d8c72fdac9d5a","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"ui-denial","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":3266.296,"settledAtMs":3286.3605}]},{"id":"case056-atomicity-restored#scenario-1-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-atomicity-restored#scenario-1-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"1f87d63bd86520f620460b6526653b4ac90c9e7cb25f33ecb8e560847e72bcef","pointer":"/cases/1/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-permission-normal#run-id","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"해당 phase의 실제 runId","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/runId","valueSha256":"25fb45373d90c4b5c80172b5c86a596de16b39bd43edd041dc24ee2b1fcf8d9e","matched":true,"value":"16df127d-8c6a-47aa-b275-b6447ac65d57-normal"},{"id":"case056-permission-normal#goal-matched","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"representative-normal","caseId":"CASE-056","explanation":"기존 목표 단언에 넘긴 actual/expected의 실제 일치 여부","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-permission-normal#goal-target","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"변경하지 않은 목표 단언 파일/행","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/observations/0/target","valueSha256":"c6a65467ea54b5bd3c4247ec8e111bc14ec012cddffb3aa5cc3ec70dd0271e77","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","line":165}},{"id":"case056-permission-normal#goal-expected","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"일회용 ID 또는 고정 SQLSTATE 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/observations/0/expected","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case056-permission-normal#goal-actual","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"동일 reader의 실제 값","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/observations/0/actual","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case056-permission-normal#sql-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 SQL 정의·owner·ACL 비교가 통과한 뒤 기록됨","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-permission-normal#sql-restored-hash","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"복원 후 실제 SQL definition hash","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/restoredHash","valueSha256":"2561302a512fdf04eaf050e3415d9e4af18cbab14cb3819088390011419057e4","matched":true,"value":"7180073814799be2678683bc0106901b967e5ee57aad83a2d66b6675089f6714"},{"id":"case056-permission-normal#report-problems","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"필수2시나리오 실제 assertion event를 대조한 reporter 오류 없음","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/problems","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-normal#scenario-0-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/proofs","valueSha256":"9ac6af884d6503563ac52a83f25012661c0bd2f507cf6fe9954a7a04a3959c74","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"initial-import","status":"passed"},{"id":"overlap-rejection","status":"passed"},{"id":"corrected-import","status":"passed"},{"id":"canonical-readback","status":"passed"},{"id":"reload-reentry","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-permission-normal#scenario-0-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/cleanup","valueSha256":"3a758d15aa6451ea6e15c83629fc6b8a8b4a977641324de2bc404fab6f3fccdd","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":5},{"id":"admin-membership","status":"passed","settled":true,"durationMs":12},{"id":"disposable-user","status":"passed","settled":true,"durationMs":81},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":10},{"id":"auth-session","status":"passed","settled":true,"durationMs":13},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-permission-normal#scenario-0-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-normal#scenario-0-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/durationMs","valueSha256":"ee9c43424bb4c242e06f1b84ca7992822f47b6f5f005af866ec6a684382c9547","matched":true,"value":1519},{"id":"case056-permission-normal#scenario-0-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/environment","valueSha256":"c39f10aa65f0d87fa3e668be8c34e49f13a4da09687fe6493ae5c85714b5ebe4","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:34.768Z"}},{"id":"case056-permission-normal#scenario-0-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-normal#scenario-0-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-normal#scenario-0-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/requests","valueSha256":"4dc0dd0ce9a3addd38f84d8e7824273ead4b3742d0db1b90eae41f9ae4bfc573","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"prepare","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":927.9485,"settledAtMs":950.5572},{"id":2,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":952.9995,"settledAtMs":1019.5809},{"id":3,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1021.9258,"settledAtMs":1066.386},{"id":4,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1089.541,"settledAtMs":1099.7153},{"id":5,"tab":"admin","generation":2,"phase":"initial-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1283.3415,"settledAtMs":1321.9125},{"id":6,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1326.2453,"settledAtMs":1384.3828},{"id":7,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1386.2935,"settledAtMs":1432.7769},{"id":8,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1441.7119,"settledAtMs":1447.4778},{"id":9,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1441.7521,"settledAtMs":1452.0453},{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1463.5852,"settledAtMs":1472.3289},{"id":11,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1478.6235,"settledAtMs":1492.423},{"id":12,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1492.4597,"settledAtMs":1503.6183},{"id":13,"tab":"admin","generation":2,"phase":"corrected-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1610.1337,"settledAtMs":1632.041},{"id":14,"tab":"admin","generation":2,"phase":"corrected-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1636.0248,"settledAtMs":1693.031},{"id":15,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1694.8636,"settledAtMs":1736.5464},{"id":16,"tab":"admin","generation":2,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1743.6396,"settledAtMs":1748.8446},{"id":17,"tab":"admin","generation":2,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1743.674,"settledAtMs":1752.6024},{"id":18,"tab":"admin","generation":3,"phase":"reload-reentry","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1784.5457,"settledAtMs":1793.2617},{"id":19,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1794.4065,"settledAtMs":1848.5915},{"id":20,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1850.4445,"settledAtMs":1896.5961},{"id":21,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1910.6144,"settledAtMs":1915.6877}]},{"id":"case056-permission-normal#scenario-0-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-permission-normal#scenario-0-overlap-9","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"실제 혼합 중복 업로드 POST 상태/terminal/발생 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/requests/9","valueSha256":"5c5d1718aa199c125248c190ca83764d95c505bfa3a9184e69477a5def0f466a","matched":true,"value":{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1463.5852,"settledAtMs":1472.3289}},{"id":"case056-permission-normal#scenario-0-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/0/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-permission-normal#scenario-1-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/proofs","valueSha256":"fd5fe3aa4fe19d1e78020102736328c65a2c0e103ec3598cf638e9df284aeed6","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"ui-denial","status":"passed"},{"id":"rpc-denial","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-permission-normal#scenario-1-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/cleanup","valueSha256":"3f9e74b6c7a12f00556154601de6bb994a87b9686fe793e0feac1bfa2509369e","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":2},{"id":"admin-membership","status":"passed","settled":true,"durationMs":9},{"id":"disposable-user","status":"passed","settled":true,"durationMs":70},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":10},{"id":"auth-session","status":"passed","settled":true,"durationMs":12},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-permission-normal#scenario-1-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-normal#scenario-1-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/durationMs","valueSha256":"72805ff7c0f210f3aa6e66f3f208974437611c64a2393f4e7edfef47d8e140a7","matched":true,"value":984},{"id":"case056-permission-normal#scenario-1-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/environment","valueSha256":"a01c6154409d941e06eee54c64f78ff1a81796de99d6cedee0afbf3049904426","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:36.412Z"}},{"id":"case056-permission-normal#scenario-1-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-normal#scenario-1-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-normal#scenario-1-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/requests","valueSha256":"959b21b1f63c48a3b1dc60fbeee71200ffdbb1b5b5d59d77401bca139c428a44","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"ui-denial","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2548.8256,"settledAtMs":2568.5241}]},{"id":"case056-permission-normal#scenario-1-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-permission-normal#scenario-1-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"2e5bfbc42181211eb618593738b31b406b79bd92e2d49664b2c9547e1510bcc6","pointer":"/cases/1/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-permission-normal#real-permission-denial","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"실제 비관리자 SDK RPC의 SQLSTATE42501","artifact":"product","path":"product-mutant.json","artifactSha256":"6366486caec9daa426de59330b7039bfc5a5076727bb2f06d5bdeb0bc7c691cb","pointer":"/observations/0/actual","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case056-permission-mutant#run-id","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"해당 phase의 실제 runId","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/runId","valueSha256":"35e64e3b49c9c8aa8b2ca4b1c4058d26f1cd1f111fff04bc29894cf7565b1fd0","matched":true,"value":"16df127d-8c6a-47aa-b275-b6447ac65d57-mutant"},{"id":"case056-permission-mutant#goal-matched","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"representative-negative","caseId":"CASE-056","explanation":"기존 목표 단언에 넘긴 actual/expected의 실제 일치 여부","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/observations/0/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case056-permission-mutant#goal-target","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"변경하지 않은 목표 단언 파일/행","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/observations/0/target","valueSha256":"c6a65467ea54b5bd3c4247ec8e111bc14ec012cddffb3aa5cc3ec70dd0271e77","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","line":165}},{"id":"case056-permission-mutant#goal-expected","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"일회용 ID 또는 고정 SQLSTATE 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/observations/0/expected","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case056-permission-mutant#goal-actual","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"동일 reader의 실제 값","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/observations/0/actual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"case056-permission-mutant#sql-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 SQL 정의·owner·ACL 비교가 통과한 뒤 기록됨","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-permission-mutant#sql-restored-hash","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"복원 후 실제 SQL definition hash","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/restoredHash","valueSha256":"2561302a512fdf04eaf050e3415d9e4af18cbab14cb3819088390011419057e4","matched":true,"value":"7180073814799be2678683bc0106901b967e5ee57aad83a2d66b6675089f6714"},{"id":"case056-permission-mutant#sql-applied","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"fault-applied","caseId":"CASE-056","explanation":"실제 DB function snapshot이 원래와 달라진 hash","artifact":"product","path":"product-mutant.json","artifactSha256":"f0e9d14251eb978004aeb3a6c1a92338fb733391277ccfaacc8da1d1640f80f2","pointer":"/changedHash","valueSha256":"48a8f73f654e71e7f816e1f538f4e76fee455bb2ec1bb8e77df59058a463c809","matched":true,"value":"e0ddd0a90fc827fa24d4848b8b62be199bef9a027310bf42ddd2ceb527a6a72a"},{"id":"case056-permission-mutant#scenario-0-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/cleanup","valueSha256":"3bf665a5cf3cd41508c4c36fa2798737b03ef7fd176cae6e3e7aff8387ffc7c3","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":5},{"id":"admin-membership","status":"passed","settled":true,"durationMs":17},{"id":"disposable-user","status":"passed","settled":true,"durationMs":78},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":8},{"id":"auth-session","status":"passed","settled":true,"durationMs":13},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-permission-mutant#scenario-0-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-mutant#scenario-0-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/durationMs","valueSha256":"9c05d48bbde0b1ecdc68706e9c4a536de566f35deb45d66ad6d8261689164dfc","matched":true,"value":1572},{"id":"case056-permission-mutant#scenario-0-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/environment","valueSha256":"63a751a869d222d061670ee67f31e841798566ace0071c6c7aa7838b24df6773","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:39.613Z"}},{"id":"case056-permission-mutant#scenario-0-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-mutant#scenario-0-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-mutant#scenario-0-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/requests","valueSha256":"13144deef88d519fa3b98b9b07b1d61ba8102130d71c63cb05cfa5033fa3431e","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"prepare","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":916.5495,"settledAtMs":937.9303},{"id":2,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":940.2083,"settledAtMs":997.6164},{"id":3,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1007.0471,"settledAtMs":1050.3089},{"id":4,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1072.3648,"settledAtMs":1081.918},{"id":5,"tab":"admin","generation":2,"phase":"initial-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1265.4478,"settledAtMs":1307.0145},{"id":6,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1311.7694,"settledAtMs":1361.2264},{"id":7,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1363.0398,"settledAtMs":1407.5435},{"id":8,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1415.4055,"settledAtMs":1422.8441},{"id":9,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1415.4998,"settledAtMs":1426.6507},{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1513.5795,"settledAtMs":1525.3567},{"id":11,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1531.8755,"settledAtMs":1542.0241},{"id":12,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1542.6885,"settledAtMs":1554.8588},{"id":13,"tab":"admin","generation":2,"phase":"corrected-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1665.2796,"settledAtMs":1696.6752},{"id":14,"tab":"admin","generation":2,"phase":"corrected-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1700.4374,"settledAtMs":1756.6433},{"id":15,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1758.4524,"settledAtMs":1801.3521},{"id":16,"tab":"admin","generation":2,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1807.3002,"settledAtMs":1812.7528},{"id":17,"tab":"admin","generation":2,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1807.722,"settledAtMs":1816.2888},{"id":18,"tab":"admin","generation":3,"phase":"reload-reentry","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1852.5039,"settledAtMs":1852.5432},{"id":19,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1852.5657,"settledAtMs":1901.6464},{"id":20,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1903.2655,"settledAtMs":1946.4261},{"id":21,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1961.1613,"settledAtMs":1966.2792}]},{"id":"case056-permission-mutant#scenario-0-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-permission-mutant#scenario-0-overlap-9","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"실제 혼합 중복 업로드 POST 상태/terminal/발생 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/requests/9","valueSha256":"3ac8cf5f636a352c08a751d0235bed9637073c1e8d7a646827091c9675a0df72","matched":true,"value":{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1513.5795,"settledAtMs":1525.3567}},{"id":"case056-permission-mutant#scenario-0-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/0/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-permission-mutant#scenario-1-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-failure-path","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/evidence/cleanup","valueSha256":"2a1fe99cf8fe2b8c73f615a9f37a2b65a062753d3bc907bc3d40d9848e38f4d7","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":4},{"id":"admin-membership","status":"passed","settled":true,"durationMs":18},{"id":"disposable-user","status":"passed","settled":true,"durationMs":72},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":10},{"id":"auth-session","status":"passed","settled":true,"durationMs":12},{"id":"browser-observer","status":"passed","settled":true,"durationMs":3}]},{"id":"case056-permission-mutant#scenario-1-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-mutant#scenario-1-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/durationMs","valueSha256":"434f4d14c1eb231306b51aaa160c021b63670ac6ca67fb8e403f4500983dd1e4","matched":true,"value":1727},{"id":"case056-permission-mutant#scenario-1-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/evidence/environment","valueSha256":"9a45af1c8f0fa4406b1fb6413601eb54e509c4eff3f4cf18a6e34771cb9f0f3f","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:41.310Z"}},{"id":"case056-permission-mutant#scenario-1-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/evidence/primaryErrors","valueSha256":"4334e7459c8440f185f1d3d5d17d4496f3385bca1202855d93fd9c87dbb9896f","matched":true,"value":{"count":1,"kinds":["error"]}},{"id":"case056-permission-mutant#scenario-1-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-mutant#scenario-1-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/evidence/requests","valueSha256":"63b4d5bfad6fc87494aeee7ea68d981edbfb25eda7ef49e2d81007e87a21998c","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"ui-denial","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2541.9537,"settledAtMs":2561.3104}]},{"id":"case056-permission-mutant#scenario-1-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"3b3ccfaed8164f28fcb797cb12c61699d436f4b4a05feb2e58ee8100e6834292","pointer":"/cases/1/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-permission-mutant#scenario-1-first-error","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"원본 native 첫 실패: 목표 단언 기대/실제와 소스 위치, 실제 사용자 자료가 아닌 disposable fixture값","artifact":"native","path":"native-results.json","artifactSha256":"452ef7bcc946d161fcf85cb2a9edbd7ae6e90c5ff098c233750dcf08b3efe84f","pointer":"/suites/0/specs/1/tests/0/results/0/errors/0","valueSha256":"973abb1a9b060480710f03ac022609fcfd4907dd044808c18e75bf5a25787513","matched":true,"value":{"location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","column":34,"line":165},"message":"Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m\"42501\"\u001b[39m\nReceived: \u001b[31mundefined\u001b[39m\n\n  163 |       const denied = await c.auth.rpc(\"get_admin_content_reports_v1\", { p_status: \"pending\", p_limit: 1 });\n  164 |       await productMutation.observe({ expected: \"42501\", actual: denied.error?.code ?? null, target: goalLocation(new URL(\"./CASE-056-motra-ui-import-atomic-recovery.spec.mjs\", import.meta.url), \"expect(denied.error?.code).toBe(\\\"42501\\\")\") });\n> 165 |       expect(denied.error?.code).toBe(\"42501\");\n      |                                  ^\n  166 |     });\n  167 |     await quality.verifyControl({\n  168 |       id: \"case056-permission-control\",\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs:165:34\n    at runWithRestoration (C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\support\\productMutantExperiment.mjs:106:17)\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs:162:5\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\support\\fixture.mjs:49:31\n    at C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs:158:3"}},{"id":"case056-permission-restored#run-id","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"해당 phase의 실제 runId","artifact":"product","path":"product-mutant.json","artifactSha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109","pointer":"/runId","valueSha256":"53898a8e6890c6a86e6a62b77dc2821508bfe8bacc1bc3fc59f1f84b0ddac031","matched":true,"value":"16df127d-8c6a-47aa-b275-b6447ac65d57-restored"},{"id":"case056-permission-restored#goal-matched","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"representative-restored","caseId":"CASE-056","explanation":"기존 목표 단언에 넘긴 actual/expected의 실제 일치 여부","artifact":"product","path":"product-mutant.json","artifactSha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-permission-restored#goal-target","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"변경하지 않은 목표 단언 파일/행","artifact":"product","path":"product-mutant.json","artifactSha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109","pointer":"/observations/0/target","valueSha256":"c6a65467ea54b5bd3c4247ec8e111bc14ec012cddffb3aa5cc3ec70dd0271e77","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-docs\\admin\\e2e\\CASE-056-motra-ui-import-atomic-recovery.spec.mjs","line":165}},{"id":"case056-permission-restored#goal-expected","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"일회용 ID 또는 고정 SQLSTATE 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109","pointer":"/observations/0/expected","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case056-permission-restored#goal-actual","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"동일 reader의 실제 값","artifact":"product","path":"product-mutant.json","artifactSha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109","pointer":"/observations/0/actual","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case056-permission-restored#sql-restored","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 SQL 정의·owner·ACL 비교가 통과한 뒤 기록됨","artifact":"product","path":"product-mutant.json","artifactSha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case056-permission-restored#sql-restored-hash","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"복원 후 실제 SQL definition hash","artifact":"product","path":"product-mutant.json","artifactSha256":"d4f2f8d7026850bd18fb4a1d2a1df906eb427e4b9540f988f54783e82bf15109","pointer":"/restoredHash","valueSha256":"2561302a512fdf04eaf050e3415d9e4af18cbab14cb3819088390011419057e4","matched":true,"value":"7180073814799be2678683bc0106901b967e5ee57aad83a2d66b6675089f6714"},{"id":"case056-permission-restored#report-problems","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"필수2시나리오 실제 assertion event를 대조한 reporter 오류 없음","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/problems","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-restored#scenario-0-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/proofs","valueSha256":"9ac6af884d6503563ac52a83f25012661c0bd2f507cf6fe9954a7a04a3959c74","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"initial-import","status":"passed"},{"id":"overlap-rejection","status":"passed"},{"id":"corrected-import","status":"passed"},{"id":"canonical-readback","status":"passed"},{"id":"reload-reentry","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-permission-restored#scenario-0-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/cleanup","valueSha256":"e20ab83398a898c248080679ec77b6597a0e5ba8e082d5bd91518d2181fa83a7","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":5},{"id":"admin-membership","status":"passed","settled":true,"durationMs":14},{"id":"disposable-user","status":"passed","settled":true,"durationMs":87},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":10},{"id":"auth-session","status":"passed","settled":true,"durationMs":13},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-permission-restored#scenario-0-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-restored#scenario-0-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/durationMs","valueSha256":"c6437e0ba0560952cb942343f521c60fc3f2247dd1aebf95460c1a070b263051","matched":true,"value":1578},{"id":"case056-permission-restored#scenario-0-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/environment","valueSha256":"c2cd2d11974405d19098821722a78b0b7fe9f1d6dba21c02876973fc6e2c5f3a","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:45.237Z"}},{"id":"case056-permission-restored#scenario-0-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-restored#scenario-0-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-restored#scenario-0-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/requests","valueSha256":"c3295e67987e03dd5a4b922ee9f9af8c7ac459b915ee3e03377d616e35158360","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"prepare","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":954.2306,"settledAtMs":973.2419},{"id":2,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":974.8979,"settledAtMs":1033.6046},{"id":3,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1036.3404,"settledAtMs":1080.5268},{"id":4,"tab":"admin","generation":1,"phase":"prepare","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1103.1041,"settledAtMs":1113.4501},{"id":5,"tab":"admin","generation":2,"phase":"initial-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1293.5369,"settledAtMs":1331.255},{"id":6,"tab":"admin","generation":2,"phase":"initial-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1335.5002,"settledAtMs":1389.7756},{"id":7,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1391.7296,"settledAtMs":1437.7208},{"id":8,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1447.7501,"settledAtMs":1453.3211},{"id":9,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1447.7934,"settledAtMs":1457.5986},{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1473.8291,"settledAtMs":1485.4193},{"id":11,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1492.157,"settledAtMs":1502.4498},{"id":12,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/record_client_error_event","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1502.9261,"settledAtMs":1517.0905},{"id":13,"tab":"admin","generation":2,"phase":"corrected-import","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1657.1522,"settledAtMs":1698.7193},{"id":14,"tab":"admin","generation":2,"phase":"corrected-import","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1702.6997,"settledAtMs":1756.5599},{"id":15,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1757.5684,"settledAtMs":1800.2707},{"id":16,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1807.4891,"settledAtMs":1812.8215},{"id":17,"tab":"admin","generation":2,"phase":"canonical-readback","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1807.5239,"settledAtMs":1816.7663},{"id":18,"tab":"admin","generation":3,"phase":"reload-reentry","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1858.8535,"settledAtMs":1861.5722},{"id":19,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercises","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1862.3597,"settledAtMs":1916.9574},{"id":20,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_synonyms","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1918.698,"settledAtMs":1962.0969},{"id":21,"tab":"admin","generation":3,"phase":"reload-reentry","method":"GET","route":"/rest/v1/exercise_archetypes","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1978.0809,"settledAtMs":1986.8115}]},{"id":"case056-permission-restored#scenario-0-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-permission-restored#scenario-0-overlap-9","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"실제 혼합 중복 업로드 POST 상태/terminal/발생 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/requests/9","valueSha256":"9b3f914a278f0d5e7023e876b73855977192c139ad6dd52c5ee818064bf1c76c","matched":true,"value":{"id":10,"tab":"admin","generation":2,"phase":"overlap-rejection","method":"POST","route":"/rest/v1/rpc/import_motra_workouts_v1","status":400,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":1473.8291,"settledAtMs":1485.4193}},{"id":"case056-permission-restored#scenario-0-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/0/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"case056-permission-restored#scenario-1-proofs","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"required-assertions","caseId":"CASE-056","explanation":"실제 proof별 완료/실패 단계","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/proofs","valueSha256":"fd5fe3aa4fe19d1e78020102736328c65a2c0e103ec3598cf638e9df284aeed6","matched":true,"value":[{"id":"prepare","status":"passed"},{"id":"ui-denial","status":"passed"},{"id":"rpc-denial","status":"passed"},{"id":"unexpected-errors","status":"passed"}]},{"id":"case056-permission-restored#scenario-1-cleanup","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"정상 및 실제 본문 실패 후 전체6자원 정리 상태/settled","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/cleanup","valueSha256":"352cf2596acdf9fd2373ebddd543091dfae9177fd522a087326b2013b48711c6","matched":true,"value":[{"id":"browser-page","status":"passed","settled":true,"durationMs":2},{"id":"admin-membership","status":"passed","settled":true,"durationMs":8},{"id":"disposable-user","status":"passed","settled":true,"durationMs":63},{"id":"owned-data-readback","status":"passed","settled":true,"durationMs":9},{"id":"auth-session","status":"passed","settled":true,"durationMs":12},{"id":"browser-observer","status":"passed","settled":true,"durationMs":4}]},{"id":"case056-permission-restored#scenario-1-pending","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-success","caseId":"CASE-056","explanation":"실제 terminal 미수신 요청 목록","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/pendingRequests","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case056-permission-restored#scenario-1-duration","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"duration-budget","caseId":"CASE-056","explanation":"실제 native 전체 duration","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/durationMs","valueSha256":"16b30490a644117a249c2018f31f7d29d2848c8bd43956a895f9bcd649f3ff9c","matched":true,"value":969},{"id":"case056-permission-restored#scenario-1-environment","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"브라우저/시간대/실제시작시각","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/environment","valueSha256":"e3425bb96b97878cfe530fddee2030ae5e6774a221dc84a2d64df62d2c39668a","matched":true,"value":{"browser":"chromium","timezone":"Asia/Seoul","startedAt":"2026-09-09T19:20:46.944Z"}},{"id":"case056-permission-restored#scenario-1-primary-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문 첫 오류 수와 종류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/primaryErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-restored#scenario-1-cleanup-errors","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"본문과 별도로 보존한 정리 오류","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/cleanupErrors","valueSha256":"a5113edfd6a697af01f2617f5ea9c25187409c234f37311262ea42e912c97255","matched":true,"value":{"count":0,"kinds":[]}},{"id":"case056-permission-restored#scenario-1-requests","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"tab/문서generation/phase/terminal, query/header/body 미수집","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/requests","valueSha256":"716883d26cc7f616187197abdf8836baa545704885f16a7102c375090baa6943","matched":true,"value":[{"id":1,"tab":"admin","generation":1,"phase":"ui-denial","method":"POST","route":"/rest/v1/rpc/is_lift_guild_admin","status":200,"settled":true,"failed":false,"terminal":"requestfinished","startedAtMs":2574.0371,"settledAtMs":2600.5482}]},{"id":"case056-permission-restored#scenario-1-attempt","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"diagnostic-completeness","caseId":"CASE-056","explanation":"최초 시도0","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case056-permission-restored#scenario-1-control-0","kind":"server-mutant","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"condition-observed","caseId":"CASE-056","explanation":"정확 응답경계 적용1회와 동일 reader불일치","artifact":"quality","path":"playwright/admin-quality-report.json","artifactSha256":"0f6f618fce0f0555d924632e76c35f9a308cbad5be4ee500f01f4de0c566adcd","pointer":"/cases/1/evidence/controls/0/negative","valueSha256":"05d1b2bb908145b1903b260db76c23de4372c7dcf3ff77c44287ed87687d0300","matched":true,"value":{"matched":false,"applied":{"count":1}}},{"id":"admin-shared-37aa8f0c#line-27-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":27,"end":27},"valueSha256":"374b234c49dc577dcceee506675c704b2a3cb7bb3a0c59e00d936ed7e9b338ad","matched":true,"value":"✔ admin control changes one real HTTP response and restores the same read (221.9021ms)"},{"id":"admin-shared-37aa8f0c#line-28-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":28,"end":28},"valueSha256":"eb6171b308951722a5ce986a55a4960f269c6609b6ea295408f4122a5c5f75c1","matched":true,"value":"✔ admin response targeting preserves POST bodies and ignores other owners (65.1865ms)"},{"id":"admin-shared-37aa8f0c#line-29-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":29,"end":29},"valueSha256":"6b25d2fc605b7e777f45115975a077c70199a01a1d2fb08ceaa66c1d05b6547c","matched":true,"value":"✔ admin control rejects exception substitutes and preserves every restoration failure (1.6834ms)"},{"id":"admin-shared-37aa8f0c#line-30-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":30,"end":30},"valueSha256":"9291c23a721552548cb07003dbd47cfc928d1fcc01432ec9e677a56c18dc3403","matched":true,"value":"✔ admin control rejects missing, duplicate, no-op and unobserved faults (32.5245ms)"},{"id":"admin-shared-37aa8f0c#line-31-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":31,"end":31},"valueSha256":"578a3a5e1f6ac3f504d89d108a131818e4622833e62d5c7785e7f0666f5077f3","matched":true,"value":"✔ standalone E2E uses finite 60/10/0 budgets and its own mandatory reporter (1.3736ms)"},{"id":"admin-shared-37aa8f0c#line-31-enforcement-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"enforcement-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":31,"end":31},"valueSha256":"578a3a5e1f6ac3f504d89d108a131818e4622833e62d5c7785e7f0666f5077f3","matched":true,"value":"✔ standalone E2E uses finite 60/10/0 budgets and its own mandatory reporter (1.3736ms)"},{"id":"admin-shared-37aa8f0c#line-32-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":32,"end":32},"valueSha256":"b175508af8f7e4ca2e30b414f1aaab16fdeee2668acc7acef2ae9036e790da02","matched":true,"value":"✔ CASE-056 cannot override time budgets, skip execution or detach required proofs (50.0018ms)"},{"id":"admin-shared-37aa8f0c#line-32-enforcement-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"enforcement-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":32,"end":32},"valueSha256":"b175508af8f7e4ca2e30b414f1aaab16fdeee2668acc7acef2ae9036e790da02","matched":true,"value":"✔ CASE-056 cannot override time budgets, skip execution or detach required proofs (50.0018ms)"},{"id":"admin-shared-37aa8f0c#line-33-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":33,"end":33},"valueSha256":"ede86e14ed3781a1830c3a42b5850fa5f6d56b6466d70b3fe8f627b6b56c682f","matched":true,"value":"✔ cleanup attempts every resource once and retains a failed resource (4.5021ms)"},{"id":"admin-shared-37aa8f0c#line-33-cleanup-failure-path","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-failure-path","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":33,"end":33},"valueSha256":"ede86e14ed3781a1830c3a42b5850fa5f6d56b6466d70b3fe8f627b6b56c682f","matched":true,"value":"✔ cleanup attempts every resource once and retains a failed resource (4.5021ms)"},{"id":"admin-shared-37aa8f0c#line-34-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":34,"end":34},"valueSha256":"9544e04756c9fa80e6d84655dbc3b51e63259b5cc4f28c4edfe222e3b6d0c1b6","matched":true,"value":"✔ bounded operations stop waiting and diagnostic summaries omit error payloads (12.1973ms)"},{"id":"admin-shared-37aa8f0c#line-34-failure-diagnostic","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":34,"end":34},"valueSha256":"9544e04756c9fa80e6d84655dbc3b51e63259b5cc4f28c4edfe222e3b6d0c1b6","matched":true,"value":"✔ bounded operations stop waiting and diagnostic summaries omit error payloads (12.1973ms)"},{"id":"admin-shared-37aa8f0c#line-35-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":35,"end":35},"valueSha256":"dec56859f4c3650ae7804ddb1222d741b42a5bfb036809057c3102862ccf210e","matched":true,"value":"✔ real Playwright assertion events accept poll rechecks and reject empty, swallowed, timed-out and unfinished proofs (17940.6932ms)"},{"id":"admin-shared-37aa8f0c#line-35-enforcement-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"enforcement-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":35,"end":35},"valueSha256":"dec56859f4c3650ae7804ddb1222d741b42a5bfb036809057c3102862ccf210e","matched":true,"value":"✔ real Playwright assertion events accept poll rechecks and reject empty, swallowed, timed-out and unfinished proofs (17940.6932ms)"},{"id":"admin-shared-37aa8f0c#line-36-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":36,"end":36},"valueSha256":"c1ddedeb34a049a299f35ec8e8d9720b379577bdc3a79ab73a00af53d65c48b5","matched":true,"value":"✔ fixture preserves the first body failure and still reports cleanup failure separately (3313.5416ms)"},{"id":"admin-shared-37aa8f0c#line-36-cleanup-failure-path","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-failure-path","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":36,"end":36},"valueSha256":"c1ddedeb34a049a299f35ec8e8d9720b379577bdc3a79ab73a00af53d65c48b5","matched":true,"value":"✔ fixture preserves the first body failure and still reports cleanup failure separately (3313.5416ms)"},{"id":"admin-shared-37aa8f0c#line-36-failure-diagnostic","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":36,"end":36},"valueSha256":"c1ddedeb34a049a299f35ec8e8d9720b379577bdc3a79ab73a00af53d65c48b5","matched":true,"value":"✔ fixture preserves the first body failure and still reports cleanup failure separately (3313.5416ms)"},{"id":"admin-shared-37aa8f0c#line-40-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":40,"end":40},"valueSha256":"ecef1f206ea264437cade83467f7e2bacaae10ec6155e5cc4ed35f14950cf36a","matched":true,"value":"✔ HTTP 200 headers cannot stand in for a real request terminal event (869.2158ms)"},{"id":"admin-shared-37aa8f0c#line-41-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":41,"end":41},"valueSha256":"36c006295e2b2a4ecaf52e1e44e2560f5dba49d2d10c1a6456f777a1410cc5fc","matched":true,"value":"✔ waiting for the old document body before reload preserves all actual completion evidence (330.3036ms)"},{"id":"admin-shared-37aa8f0c#line-42-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":42,"end":42},"valueSha256":"294574ec0bca89264873994842b9061c8924a8db603ac4a31e925edd628a7127","matched":true,"value":"✔ unsafe reload retains an unfinished old request instead of fabricating a successful completion (436.7659ms)"},{"id":"admin-shared-37aa8f0c#line-44-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":44,"end":44},"valueSha256":"77418ec124650adc61fd8df296d9bd7e2a9a6c41fc242106c14612b1eb818d16","matched":true,"value":"✔ a real abort is terminal failure and is never classified as successful loading (268.3863ms)"},{"id":"admin-shared-37aa8f0c#line-45-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":45,"end":45},"valueSha256":"daed30b58d5a871edf9d598cb0bad6d7b360f734653f362f65afd7dc30e4899b","matched":true,"value":"✔ response callbacks that start another request remain covered and diagnostics omit secrets (250.4333ms)"},{"id":"admin-shared-37aa8f0c#line-45-failure-diagnostic","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"failure-diagnostic","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":45,"end":45},"valueSha256":"daed30b58d5a871edf9d598cb0bad6d7b360f734653f362f65afd7dc30e4899b","matched":true,"value":"✔ response callbacks that start another request remain covered and diagnostics omit secrets (250.4333ms)"},{"id":"admin-shared-37aa8f0c#line-56-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":56,"end":56},"valueSha256":"126ca4a7c6bee73a624a1e4eb8b9c2a7d72e74e6875a00c4964a9e4405e0e6fe","matched":true,"value":"✔ case056-atomicity: change one reviewed clause and scope it to the disposable owner (0.5027ms)"},{"id":"admin-shared-37aa8f0c#line-57-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":57,"end":57},"valueSha256":"6c677d837243b636e75a2dcecef1ae1ddb9a9e337cfdd6471d9933b892f5c9c5","matched":true,"value":"✔ case056-permission: change one reviewed clause and scope it to the disposable owner (0.4204ms)"},{"id":"admin-shared-37aa8f0c#line-58-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":58,"end":58},"valueSha256":"c87cf7aa1cb1088bd4af2fe19e25bf476fa0768d65b35064a7cc7fcd318ce608","matched":true,"value":"✔ only a dedicated local sandbox can be selected (102.5927ms)"},{"id":"admin-shared-37aa8f0c#line-59-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":59,"end":59},"valueSha256":"3912a4face2fbe5e64bd35c55884a13ca53183a9c05870f44c17727d966b15e5","matched":true,"value":"✔ expired SQL budget rejects before any Docker invocation (1.6115ms)"},{"id":"admin-shared-37aa8f0c#line-60-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":60,"end":60},"valueSha256":"a1e8980b76b1d7a1b874ae55efddfc436f8e90e7fce4c6f4d2c3b1592caf7bd9","matched":true,"value":"✔ restore always runs and preserves both the original and cleanup failure (1.0143ms)"},{"id":"admin-shared-37aa8f0c#line-60-cleanup-failure-path","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"cleanup-failure-path","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":60,"end":60},"valueSha256":"a1e8980b76b1d7a1b874ae55efddfc436f8e90e7fce4c6f4d2c3b1592caf7bd9","matched":true,"value":"✔ restore always runs and preserves both the original and cleanup failure (1.0143ms)"},{"id":"admin-shared-37aa8f0c#line-61-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":61,"end":61},"valueSha256":"95d62541b9cb1c8922993e77f151f66d3b665bb729fd19ab9854d5190ff6e23c","matched":true,"value":"✔ goal source reference is exact and cannot silently match two assertions (12.0079ms)"},{"id":"admin-shared-37aa8f0c#line-62-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":62,"end":62},"valueSha256":"52c66e99d9cfbbfed39ab85a9fb6420ebfa2abd6eded93b7b9ef2e8736dd560f","matched":true,"value":"✔ normal, exact target mutant and restored normal have separate accepted judgments (3.2618ms)"},{"id":"admin-shared-37aa8f0c#line-63-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":63,"end":63},"valueSha256":"55e9e7e87f89c45a7a01bb4fc089e8baa180ea4a09b905c6132a2f0d3dbf89b9","matched":true,"value":"✔ a mutant cannot pass on missing observation (0.5943ms)"},{"id":"admin-shared-37aa8f0c#line-64-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":64,"end":64},"valueSha256":"8fe5c0e4a94937b8a2c018a6fbb55a37e49f1607f4999ed77017d000cdf57733","matched":true,"value":"✔ a mutant cannot pass on unrelated exception (0.6139ms)"},{"id":"admin-shared-37aa8f0c#line-65-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":65,"end":65},"valueSha256":"84fe33e2bf13e96900f7e0f239e15eb80535f9435c24ea0f095a9cba105bc8d0","matched":true,"value":"✔ a mutant cannot pass on timeout (0.436ms)"},{"id":"admin-shared-37aa8f0c#line-66-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":66,"end":66},"valueSha256":"aa4292db001b732f86109aee59173450bb45f8a0e161aceff684b18834b6e6f7","matched":true,"value":"✔ a mutant cannot pass on syntax failure (0.3894ms)"},{"id":"admin-shared-37aa8f0c#line-67-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":67,"end":67},"valueSha256":"d4e01a508f0ada9d98b19736c7f0986d9d4e8586c943e57a68937443d949b3da","matched":true,"value":"✔ a mutant cannot pass on retry (0.3502ms)"},{"id":"admin-shared-37aa8f0c#line-68-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":68,"end":68},"valueSha256":"7a13d046c149dbc816f3a39ccc263895891eb6693b8ce747bf4ce3f628b02d76","matched":true,"value":"✔ a mutant cannot pass on cleanup failure (0.3357ms)"},{"id":"admin-shared-37aa8f0c#line-69-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":69,"end":69},"valueSha256":"300411d3a4d2cecee0acd4d123d6e99465bb4c8e1b0bab2b4d498b97d9283ebf","matched":true,"value":"✔ a mutant cannot pass on missing cleanup artifact (2.1563ms)"},{"id":"admin-shared-37aa8f0c#line-70-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":70,"end":70},"valueSha256":"24d2f5aa99757da10615a9a161787c34050923b60caa647a3ac1467cd508eeca","matched":true,"value":"✔ a mutant cannot pass on missing SQL restoration (0.3799ms)"},{"id":"admin-shared-37aa8f0c#line-71-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":71,"end":71},"valueSha256":"290f4983fb859d5cd00dee66cef7cfeb1af4da9fbfb5f1ecd91bf33235e9f2bd","matched":true,"value":"✔ a mutant cannot pass on unchanged SQL (0.386ms)"},{"id":"admin-shared-37aa8f0c#line-72-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":72,"end":72},"valueSha256":"bdda8eac3fc0be878fc0353693803a96387aa779d8889570b8a04790e35ab5bf","matched":true,"value":"✔ a mutant cannot pass on false matched flag (0.2924ms)"},{"id":"admin-shared-37aa8f0c#line-73-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":73,"end":73},"valueSha256":"0f7fc60b10115fe839140497cf73cb965edd85cdd6523f9fca11908b861224fe","matched":true,"value":"✔ a mutant cannot pass on wrong phase (0.2496ms)"},{"id":"admin-shared-37aa8f0c#line-74-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":74,"end":74},"valueSha256":"46c757f67068e6de51423e783b8be4966b291c008b260d72a0c94beef0791246","matched":true,"value":"✔ a mutant cannot pass on second failure (0.265ms)"},{"id":"admin-shared-37aa8f0c#line-75-helper-regression","kind":"shared-helper","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"helper-regression","caseId":"CASE-056","explanation":"해당관리자공통도구를실제로실행한검사원문. 155개합계만으로CASE고유목표를승격하지않고관련검사만연결했다.","artifact":"log","path":"quality-admin-37aa-verified-check.log","artifactSha256":"823b826d239edf435b1190d089e4dc9789c883adf03bc908262ef0a7c0c2a31e","lines":{"start":75,"end":75},"valueSha256":"5f8bc79276c770fd1919959b0bbb2d48b6aaa3b25d77362e1f50277af1efbc89","matched":true,"value":"✔ a mutant cannot pass on native success (0.2599ms)"},{"id":"admin-hosted-source#required-read-token","kind":"source-review","repository":"admin","commit":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","role":"source-review","caseId":"CASE-056","explanation":"고정 앱 backend artifact를 읽는 필수 secret의 소스 요구.","artifact":"workflow","path":".github/workflows/ci.yml","artifactSha256":"0cdd9ad52e8204f3fc9c6000bbcf459fe4d570c61cf6b197eb093cc43dd3eb62","lines":{"start":75,"end":75},"valueSha256":"0abb2b83846779e1fec9ab66d09f68dd9249bbbb2e0fc1b30eeb158297077080","matched":true,"value":"          BARBELIC_BACKEND_ARTIFACTS_READ_TOKEN: ${{ secrets.BARBELIC_BACKEND_ARTIFACTS_READ_TOKEN }}"},{"id":"app-source-current#CASE-001-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: reps-only custom 종목의 load 입력 부재와 실제 reps=3 입력·draft·단일 DB 저장·reload 3회. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":70,"end":70},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-001-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: reps-only custom 종목의 load 입력 부재와 실제 reps=3 입력·draft·단일 DB 저장·reload 3회. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":64,"end":64},"valueSha256":"1479de55c3a57a9bf494cb7c27c5ca9d80acd1a5af022e272a3e94173974cc25","matched":true,"value":"        await expect(reps).toBeVisible();"},{"id":"app-source-current#CASE-001-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: reps-only custom 종목의 load 입력 부재와 실제 reps=3 입력·draft·단일 DB 저장·reload 3회. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":105,"end":105},"valueSha256":"46592d5d1364c1a7228e7c5a36b26c769ba7dff6270a8736c23594058c71b911","matched":true,"value":"      await expect(completedSet).toHaveCount(1);"},{"id":"app-source-current#CASE-001-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: reps-only custom 종목의 load 입력 부재와 실제 reps=3 입력·draft·단일 DB 저장·reload 3회. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":129,"end":129},"valueSha256":"b1f63f2b55c5c2a26a172ea35c0ded3b6f7c048d772858a970ba4f43fb793f68","matched":true,"value":"        const persistedSession = await c.waitForSessionByTitle(sessionTitle);"},{"id":"app-source-current#CASE-001-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-1","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/case.json","artifactSha256":"f20986753fa5697a68a75c0b2194bc942e62cca9047558c330f0d3b15460bccb","lines":{"start":36,"end":36},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-001-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":206,"end":206},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-001-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-001-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-001-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적의미: 실제 reps input을 display:none으로 바꿔 동일 visibility/value reader가 편집기 소실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":70,"end":70},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-001-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적의미: 실제 reps input을 display:none으로 바꿔 동일 visibility/value reader가 편집기 소실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-1","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/case.json","artifactSha256":"f20986753fa5697a68a75c0b2194bc942e62cca9047558c330f0d3b15460bccb","lines":{"start":29,"end":29},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-001-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적의미: 실제 reps input을 display:none으로 바꿔 동일 visibility/value reader가 편집기 소실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-001-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적의미: 실제 reps input을 display:none으로 바꿔 동일 visibility/value reader가 편집기 소실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-001-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":70,"end":70},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-001-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-0","path":"error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs","artifactSha256":"248da50a2ddca316e804c2ae0a6f64195c383fb39fb74b26a1e37adf3921f7d0","lines":{"start":206,"end":206},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-001-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-001-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-001-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-001-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-001-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-001-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-001-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-001-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-001","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-002-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 동일 세션 rename revision 1→2, 저장 뒤 scrim 0 및 원래 세트/종목 값·id 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":86,"end":86},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-002-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 동일 세션 rename revision 1→2, 저장 뒤 scrim 0 및 원래 세트/종목 값·id 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":69,"end":69},"valueSha256":"1989fc67da381a9085d9bc8d51f67ef988f9043e41a246fce4b02894c239b21f","matched":true,"value":"      await expect(saveButton).toBeEnabled();"},{"id":"app-source-current#CASE-002-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 동일 세션 rename revision 1→2, 저장 뒤 scrim 0 및 원래 세트/종목 값·id 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":74,"end":74},"valueSha256":"89017e3d923ae2060ceffc1f67874f86acf85e3d0d001b5ddffee2d76606ae9b","matched":true,"value":"        const persistedSession = await c.waitForSessionByTitle(renamedTitle);"},{"id":"app-source-current#CASE-002-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 동일 세션 rename revision 1→2, 저장 뒤 scrim 0 및 원래 세트/종목 값·id 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":82,"end":82},"valueSha256":"aeee2f5553e818296551065524479ca3734d1156ba081f0d923abc0aa2aff958","matched":true,"value":"        await expect(compose).toBeHidden();"},{"id":"app-source-current#CASE-002-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-8","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/case.json","artifactSha256":"7eaad6f0f2b87e65ba13a2e28a4608d63f531fbc8f74d72738831488727d4e66","lines":{"start":36,"end":36},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-002-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":179,"end":179},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-002-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-002-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-002-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적의미: 저장 전 실제 compose scrim을 저장 뒤 DOM에 되돌려 scrim count=0이라는 같은 reader가 상호작용 차단 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":86,"end":86},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-002-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적의미: 저장 전 실제 compose scrim을 저장 뒤 DOM에 되돌려 scrim count=0이라는 같은 reader가 상호작용 차단 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-8","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/case.json","artifactSha256":"7eaad6f0f2b87e65ba13a2e28a4608d63f531fbc8f74d72738831488727d4e66","lines":{"start":29,"end":29},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-002-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적의미: 저장 전 실제 compose scrim을 저장 뒤 DOM에 되돌려 scrim count=0이라는 같은 reader가 상호작용 차단 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-002-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적의미: 저장 전 실제 compose scrim을 저장 뒤 DOM에 되돌려 scrim count=0이라는 같은 reader가 상호작용 차단 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-002-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":86,"end":86},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-002-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-7","path":"error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs","artifactSha256":"db7a533c82aac31cca6f50f25f06020d7160478e10e202605038e108e7202b5f","lines":{"start":179,"end":179},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-002-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-002-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-002-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-002-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-002-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-002-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-002-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-002-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-002","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-004-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 등록 전에 준비한 당일 baseline, 새 저장 뒤 Feed/day RPC·UI의 +350kg/+1세트/+5랩. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":169,"end":169},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-004-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 등록 전에 준비한 당일 baseline, 새 저장 뒤 Feed/day RPC·UI의 +350kg/+1세트/+5랩. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":26,"end":26},"valueSha256":"b17b0eb0ca924301e53ff11ea10e320624bdda9000c9b53df000d4ad4a527147","matched":true,"value":"    const initialMonthRpc = page.waitForResponse((response) => ("},{"id":"app-source-current#CASE-004-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 등록 전에 준비한 당일 baseline, 새 저장 뒤 Feed/day RPC·UI의 +350kg/+1세트/+5랩. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":30,"end":30},"valueSha256":"c4f15b7797a817f58953e986bbc9de2426a5e092d9b1183cdf89d17b6d6626cd","matched":true,"value":"    const initialDayRpc = page.waitForResponse((response) => ("},{"id":"app-source-current#CASE-004-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 등록 전에 준비한 당일 baseline, 새 저장 뒤 Feed/day RPC·UI의 +350kg/+1세트/+5랩. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":52,"end":52},"valueSha256":"3af903ccea38d284cd3e6cc1e7289f580d7317b32e4d18220bac44cc7862d1be","matched":true,"value":"    await expect(page.locator('[data-lg-view=\"dashboard.calendar\"]')).toBeVisible();"},{"id":"app-source-current#CASE-004-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-10","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/case.json","artifactSha256":"b22a0ef117d012750233db57479e55ea01504ec6cff7edf8f48fba3ac023aae7","lines":{"start":47,"end":47},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-004-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":240,"end":240},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-004-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-004-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-004-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적의미: 실제 day volume DOM을 새 합계에서 저장 전 합계로 되돌려 동일 숫자 reader가 stale summary를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":169,"end":169},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-004-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적의미: 실제 day volume DOM을 새 합계에서 저장 전 합계로 되돌려 동일 숫자 reader가 stale summary를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-10","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/case.json","artifactSha256":"b22a0ef117d012750233db57479e55ea01504ec6cff7edf8f48fba3ac023aae7","lines":{"start":40,"end":40},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-004-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적의미: 실제 day volume DOM을 새 합계에서 저장 전 합계로 되돌려 동일 숫자 reader가 stale summary를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-004-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적의미: 실제 day volume DOM을 새 합계에서 저장 전 합계로 되돌려 동일 숫자 reader가 stale summary를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-004-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":169,"end":169},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-004-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-9","path":"error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs","artifactSha256":"cba565024c2747d1f3de0112da9793969f07fb2a4f90460c5ca0ab3e698de92f","lines":{"start":240,"end":240},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-004-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-004-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-004-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-004-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-004-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-004-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-004-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-004-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-004","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-005-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 완료 70×5·실패 75×0·미시작 세트 세 상태가 실제 입력되고 저장/history에 시작한 두 행만 남음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":149,"end":149},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-005-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 완료 70×5·실패 75×0·미시작 세트 세 상태가 실제 입력되고 저장/history에 시작한 두 행만 남음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":70,"end":70},"valueSha256":"035e533ffea2d61901e3b4b5111684dcf83ac773a2e9bb90ed9e030c7a320fa3","matched":true,"value":"    expect(refresh.ok).toBe(true);"},{"id":"app-source-current#CASE-005-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 완료 70×5·실패 75×0·미시작 세트 세 상태가 실제 입력되고 저장/history에 시작한 두 행만 남음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":72,"end":72},"valueSha256":"c41745b1ed6b2d9473e7db7f03907591e7bc82225cd43501305f8d3340da5886","matched":true,"value":"    await c.waitForStatsGeneration(saved.receipt.statsRequestedVersion);"},{"id":"app-source-current#CASE-005-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 완료 70×5·실패 75×0·미시작 세트 세 상태가 실제 입력되고 저장/history에 시작한 두 행만 남음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":126,"end":126},"valueSha256":"28707298833fa0117fec01252f11ab9a5a6fc761ac1b04031087501b0b920447","matched":true,"value":"        expect(sessionHistory).toBeDefined();"},{"id":"app-source-current#CASE-005-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-12","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/case.json","artifactSha256":"901c76016e222043bd87e5793debe17bb61e9e33064a4c4c2645310377c7bb98","lines":{"start":34,"end":34},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-005-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":204,"end":204},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-005-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-005-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-005-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적의미: 대상 history 실제 HTTP 응답에서 0회 실패 세트만 제거하여 동일 outcome reader가 필수 실패 행 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":149,"end":149},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-005-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적의미: 대상 history 실제 HTTP 응답에서 0회 실패 세트만 제거하여 동일 outcome reader가 필수 실패 행 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-12","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/case.json","artifactSha256":"901c76016e222043bd87e5793debe17bb61e9e33064a4c4c2645310377c7bb98","lines":{"start":27,"end":27},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-005-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적의미: 대상 history 실제 HTTP 응답에서 0회 실패 세트만 제거하여 동일 outcome reader가 필수 실패 행 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-005-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적의미: 대상 history 실제 HTTP 응답에서 0회 실패 세트만 제거하여 동일 outcome reader가 필수 실패 행 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-005-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":149,"end":149},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-005-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-11","path":"error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs","artifactSha256":"c170f965b5554b84d2bb37f3bc07766b80705e7338e807bac5887026de67983d","lines":{"start":204,"end":204},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-005-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-005-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-005-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-005-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-005-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-005-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-005-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-005-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-005","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-006-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 18 rep-target×2의 실제 36기록, 32+4 페이지와 고유 id 36개. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":124,"end":124},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-006-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 18 rep-target×2의 실제 36기록, 32+4 페이지와 고유 id 36개. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":52,"end":52},"valueSha256":"035e533ffea2d61901e3b4b5111684dcf83ac773a2e9bb90ed9e030c7a320fa3","matched":true,"value":"    expect(refresh.ok).toBe(true);"},{"id":"app-source-current#CASE-006-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 18 rep-target×2의 실제 36기록, 32+4 페이지와 고유 id 36개. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":54,"end":54},"valueSha256":"25987b1b60a27fbbcbed08539c2f1e31e8f36d671a2686a4866f05c0663ecdbb","matched":true,"value":"    await c.waitForStatsGeneration(latest.receipt.statsRequestedVersion);"},{"id":"app-source-current#CASE-006-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 18 rep-target×2의 실제 36기록, 32+4 페이지와 고유 id 36개. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":103,"end":103},"valueSha256":"1696c6193adaca652e035878986fcc2af78e69226b7254a922ba943bc6d5b839","matched":true,"value":"          exercise.id,"},{"id":"app-source-current#CASE-006-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-14","path":"error-cases/CASE-006-desktop-pr-growth-pagination/case.json","artifactSha256":"968c1a4a659f386bbb5869bed27093945e69803c59ef44adeaf2a3781ba0b575","lines":{"start":34,"end":34},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-006-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":181,"end":181},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-006-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-006-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-006-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적의미: 실제 두 번째 pr_records HTTP 페이지에 첫 페이지 기록 하나를 중복시켜 같은 고유 id 개수 reader가 36 미달을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":124,"end":124},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-006-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적의미: 실제 두 번째 pr_records HTTP 페이지에 첫 페이지 기록 하나를 중복시켜 같은 고유 id 개수 reader가 36 미달을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-14","path":"error-cases/CASE-006-desktop-pr-growth-pagination/case.json","artifactSha256":"968c1a4a659f386bbb5869bed27093945e69803c59ef44adeaf2a3781ba0b575","lines":{"start":27,"end":27},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-006-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적의미: 실제 두 번째 pr_records HTTP 페이지에 첫 페이지 기록 하나를 중복시켜 같은 고유 id 개수 reader가 36 미달을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-006-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적의미: 실제 두 번째 pr_records HTTP 페이지에 첫 페이지 기록 하나를 중복시켜 같은 고유 id 개수 reader가 36 미달을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-006-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":124,"end":124},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-006-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-13","path":"error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs","artifactSha256":"54f5e4c9e6904c62a2d0016a6201f00c8ba1fe7348b00de2ba158f37aa800e80","lines":{"start":181,"end":181},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-006-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-006-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-006-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-006-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-006-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-006-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-006-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-006-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-006","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-007-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 대상·대조계정의 서로 다른 원본 준비, 대상 Auth 삭제 뒤 7목록 부재와 대조 원본 불변. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":150,"end":150},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-007-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 대상·대조계정의 서로 다른 원본 준비, 대상 Auth 삭제 뒤 7목록 부재와 대조 원본 불변. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":58,"end":58},"valueSha256":"49b04b5f45853f71f3a4b39b68e4648c2b713ba8e2bfca309397e1dacc364d70","matched":true,"value":"    await test.step(\"CASE-007 checkpoint: target and control accounts persist isolated workouts before deletion\", async () => {"},{"id":"app-source-current#CASE-007-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 대상·대조계정의 서로 다른 원본 준비, 대상 Auth 삭제 뒤 7목록 부재와 대조 원본 불변. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":114,"end":114},"valueSha256":"58d124e024dbefe0f1ae7af23229acc78a6e827f9ebd387bb7091f9ecf8c30c0","matched":true,"value":"    await test.step(\"CASE-007 checkpoint: Auth Admin deletion removes only the target account and completed workout graph\", async () => {"},{"id":"app-source-current#CASE-007-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 대상·대조계정의 서로 다른 원본 준비, 대상 Auth 삭제 뒤 7목록 부재와 대조 원본 불변. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":138,"end":138},"valueSha256":"7d895b016de691c9528089eb2294d24891b5ab3b078898de6de11df2ba3b1283","matched":true,"value":"        await expectUserGraphAbsent(c.service, {"},{"id":"app-source-current#CASE-007-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-16","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/case.json","artifactSha256":"de097fc9d88cb2c6210ab22541009ccb497dde551167b8c3dbca2b2039f291cd","lines":{"start":36,"end":36},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-007-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":206,"end":206},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-007-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-007-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-007-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적의미: 삭제 대상의 실제 session REST 조회 응답에 대상 id 잔존을 추가하여 같은 graph-residue reader의 빈 배열 단언을 검증한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":150,"end":150},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-007-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적의미: 삭제 대상의 실제 session REST 조회 응답에 대상 id 잔존을 추가하여 같은 graph-residue reader의 빈 배열 단언을 검증한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-16","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/case.json","artifactSha256":"de097fc9d88cb2c6210ab22541009ccb497dde551167b8c3dbca2b2039f291cd","lines":{"start":29,"end":29},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-007-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적의미: 삭제 대상의 실제 session REST 조회 응답에 대상 id 잔존을 추가하여 같은 graph-residue reader의 빈 배열 단언을 검증한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-007-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적의미: 삭제 대상의 실제 session REST 조회 응답에 대상 id 잔존을 추가하여 같은 graph-residue reader의 빈 배열 단언을 검증한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-007-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":150,"end":150},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-007-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-15","path":"error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs","artifactSha256":"34e00645eb0822434aa1fa3e760e823308b3accda109a81d45a0078fad5dcaaf","lines":{"start":206,"end":206},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-007-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-007-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-007-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-007-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-007-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-007-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-007-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-007-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-007","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-008-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 0kg 완료일을 포함한 실제 완료 원본, report 요청의 실제 asOf 및 정확한 연간 활성 날짜 집합. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":166,"end":166},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-008-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 0kg 완료일을 포함한 실제 완료 원본, report 요청의 실제 asOf 및 정확한 연간 활성 날짜 집합. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":81,"end":81},"valueSha256":"7033f8d8086670d517052af2b388ea3494cae01170c28d1d3ee3f3626adc4c0c","matched":true,"value":"    await c.waitForStatsGeneration(requestedVersion);"},{"id":"app-source-current#CASE-008-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 0kg 완료일을 포함한 실제 완료 원본, report 요청의 실제 asOf 및 정확한 연간 활성 날짜 집합. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":144,"end":144},"valueSha256":"3f2c9df4681905f99f879d9f52c0067c6730887833d47d21c856242a6eef73d8","matched":true,"value":"    await expect(page.locator('[data-lg-view=\"dashboard.report\"][data-lg-state=\"ready\"]')).toBeVisible();"},{"id":"app-source-current#CASE-008-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 0kg 완료일을 포함한 실제 완료 원본, report 요청의 실제 asOf 및 정확한 연간 활성 날짜 집합. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":162,"end":162},"valueSha256":"947dea2d42fa297299119be94ace713ec53bd9f5b56ceed81cbd7369c16371a4","matched":true,"value":"        await expectRenderedAnnualDayContract(page, expectedAnnualDates);"},{"id":"app-source-current#CASE-008-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-18","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/case.json","artifactSha256":"1decc7cd283b506b854ef35f37a60cf6870f97c2a39d0b96df46d721fd91201b","lines":{"start":32,"end":32},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-008-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":199,"end":199},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-008-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-008-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-008-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적의미: 실제 zero-volume 완료일 cell에서 active state와 색칠 class를 제거해 동일 active date 집합 reader가 날짜 누락을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":166,"end":166},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-008-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적의미: 실제 zero-volume 완료일 cell에서 active state와 색칠 class를 제거해 동일 active date 집합 reader가 날짜 누락을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-18","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/case.json","artifactSha256":"1decc7cd283b506b854ef35f37a60cf6870f97c2a39d0b96df46d721fd91201b","lines":{"start":25,"end":25},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-008-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적의미: 실제 zero-volume 완료일 cell에서 active state와 색칠 class를 제거해 동일 active date 집합 reader가 날짜 누락을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-008-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적의미: 실제 zero-volume 완료일 cell에서 active state와 색칠 class를 제거해 동일 active date 집합 reader가 날짜 누락을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-008-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":166,"end":166},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-008-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":199,"end":199},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-008-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-17","path":"error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs","artifactSha256":"b06a3639083e86deaf17804cdc52cb27eeeeff364b1e6f353272511a385f23f8","lines":{"start":136,"end":136},"valueSha256":"92f65cb94fccd108ec47158fce777e82f1ea44a4e3a8a3db320fc90f0f1fd7e3","matched":true,"value":"    c.onPage(page, \"request\", request => {"},{"id":"app-source-current#CASE-008-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-008-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-008-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-008-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-008-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-008-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-008-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-008","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-009-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 신규 requiresOnboarding=true에서 실제 입력/동의/PR 완료 후 새 인증 세션·reload 온보딩 0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":180,"end":180},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-009-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 신규 requiresOnboarding=true에서 실제 입력/동의/PR 완료 후 새 인증 세션·reload 온보딩 0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":22,"end":22},"valueSha256":"bec4fb4e64b66684a010433ce1e72fac9d4124f72ae48a69ee760e60e45335cf","matched":true,"value":"    expect(before.requiresOnboarding).toBe(true);"},{"id":"app-source-current#CASE-009-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 신규 requiresOnboarding=true에서 실제 입력/동의/PR 완료 후 새 인증 세션·reload 온보딩 0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":64,"end":64},"valueSha256":"47b4a7dda2e55084fb0419bb610b42d7969601bb9a4d35b6443874aa8bf44457","matched":true,"value":"      const completionResponse = page.waitForResponse((response) => ("},{"id":"app-source-current#CASE-009-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 신규 requiresOnboarding=true에서 실제 입력/동의/PR 완료 후 새 인증 세션·reload 온보딩 0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":81,"end":81},"valueSha256":"d24160e62d096c7e8e765dcff85938f34a0175abdd2dd60a6c17cd9664ef070d","matched":true,"value":"        await expect(page.locator('[data-lg-view=\"dashboard.home\"]')).toBeVisible();"},{"id":"app-source-current#CASE-009-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-20","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/case.json","artifactSha256":"fd7ebf031f551b9afa09a44a2d300ad9fe2fcc546ec2bf5ac92a99ddf377aa3f","lines":{"start":35,"end":35},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-009-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":216,"end":216},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-009-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-009-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-009-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적의미: 실제 초기 onboarding DOM을 새 인증 후 Home에 다시 삽입해 같은 onboarding count=0 reader가 반복 노출을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":180,"end":180},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-009-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적의미: 실제 초기 onboarding DOM을 새 인증 후 Home에 다시 삽입해 같은 onboarding count=0 reader가 반복 노출을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-20","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/case.json","artifactSha256":"fd7ebf031f551b9afa09a44a2d300ad9fe2fcc546ec2bf5ac92a99ddf377aa3f","lines":{"start":28,"end":28},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-009-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적의미: 실제 초기 onboarding DOM을 새 인증 후 Home에 다시 삽입해 같은 onboarding count=0 reader가 반복 노출을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-009-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적의미: 실제 초기 onboarding DOM을 새 인증 후 Home에 다시 삽입해 같은 onboarding count=0 reader가 반복 노출을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-009-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":180,"end":180},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-009-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-19","path":"error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs","artifactSha256":"d21ea49f1fc2ee4ad1891b9e623d2df14279b2c706b37f44ea35e29b4a372208","lines":{"start":216,"end":216},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-009-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-009-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-009-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-009-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-009-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-009-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-009-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-009-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-009","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-010-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: warmup 완료 mark, 정확 chunk 404 1회와 top-level reload 1회, guard 존재 및 중복 preloadError의 defaultPrevented=false. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":128,"end":128},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-010-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: warmup 완료 mark, 정확 chunk 404 1회와 top-level reload 1회, guard 존재 및 중복 preloadError의 defaultPrevented=false. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":83,"end":83},"valueSha256":"77d4ab0bff1a4c88ee5daa1bde2a614f09f1e615cd988a5eaa7b0110d9b76d5c","matched":true,"value":"      await expect.poll("},{"id":"app-source-current#CASE-010-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: warmup 완료 mark, 정확 chunk 404 1회와 top-level reload 1회, guard 존재 및 중복 preloadError의 defaultPrevented=false. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":94,"end":94},"valueSha256":"0181f6ea919d36912eb5935669a1d0b0ba4bd5c7881bf08e8ae8116a4aa86fc3","matched":true,"value":"      await expect.poll(() => page.evaluate(() => ("},{"id":"app-source-current#CASE-010-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: warmup 완료 mark, 정확 chunk 404 1회와 top-level reload 1회, guard 존재 및 중복 preloadError의 defaultPrevented=false. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":102,"end":102},"valueSha256":"fe7c8650eff2b7102ed7578c7b43ad97b21074f1a9011f50bfde6e53b3570c77","matched":true,"value":"        await expect.poll("},{"id":"app-source-current#CASE-010-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-22","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/case.json","artifactSha256":"b5a119ad7ff193dac71db85796da221ad47baa9e4ebc94562ba7182414ade43f","lines":{"start":37,"end":37},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-010-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":173,"end":173},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-010-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-010-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-010-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적의미: 실제 sessionStorage의 1회 reload guard를 삭제하여 동일 guard reader가 예산 기록 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":128,"end":128},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-010-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적의미: 실제 sessionStorage의 1회 reload guard를 삭제하여 동일 guard reader가 예산 기록 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-22","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/case.json","artifactSha256":"b5a119ad7ff193dac71db85796da221ad47baa9e4ebc94562ba7182414ade43f","lines":{"start":30,"end":30},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-010-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적의미: 실제 sessionStorage의 1회 reload guard를 삭제하여 동일 guard reader가 예산 기록 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-010-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적의미: 실제 sessionStorage의 1회 reload guard를 삭제하여 동일 guard reader가 예산 기록 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-010-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":128,"end":128},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-010-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":173,"end":173},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-010-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-21","path":"error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs","artifactSha256":"e5e79ec1a8da1628b44123a20286b3238a9b139405fb8d77e9021434b9a4c9a4","lines":{"start":47,"end":47},"valueSha256":"1c942812f616dd2374a913816e74f40092b3d837132703b1a1ab753d4fa453c1","matched":true,"value":"    c.onPage(page, \"request\", (request) => {"},{"id":"app-source-current#CASE-010-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-010-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-010-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-010-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-010-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-010-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-010-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-010","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-011-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 빈 기록 폐기·legacy title-only 폐기·실제 작성 draft의 탭 종료/재개, 최종 단일 서버 저장. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":81,"end":81},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-011-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 빈 기록 폐기·legacy title-only 폐기·실제 작성 draft의 탭 종료/재개, 최종 단일 서버 저장. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":33,"end":33},"valueSha256":"396a138aebd72895683ccec68c09430ec7eee18a1d13e3552f43b8d1eee09a58","matched":true,"value":"    await expect.poll(() => readWorkoutDraftEnvelope(page, c.userId), {"},{"id":"app-source-current#CASE-011-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 빈 기록 폐기·legacy title-only 폐기·실제 작성 draft의 탭 종료/재개, 최종 단일 서버 저장. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":75,"end":75},"valueSha256":"77d4ab0bff1a4c88ee5daa1bde2a614f09f1e615cd988a5eaa7b0110d9b76d5c","matched":true,"value":"      await expect.poll("},{"id":"app-source-current#CASE-011-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 빈 기록 폐기·legacy title-only 폐기·실제 작성 draft의 탭 종료/재개, 최종 단일 서버 저장. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":138,"end":138},"valueSha256":"50c00520cef194555298bb1406e99d8ab57254ac287be4015a49f10dd857ec14","matched":true,"value":"        await expect.poll(async () => draftInputFacts(await readWorkoutDraftEnvelope(page, c.userId))).toEqual({"},{"id":"app-source-current#CASE-011-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-24","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/case.json","artifactSha256":"82cc1f9f51729baa25031e011f220968087be8637f42768fbbfa9fcd546010a8","lines":{"start":42,"end":42},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-011-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":261,"end":261},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-011-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-011-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-011-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적의미: 실제 폐기된 legacy draft 행을 같은 owner/key에 재삽입해 같은 null reader가 ghost 초안 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":81,"end":81},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-011-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적의미: 실제 폐기된 legacy draft 행을 같은 owner/key에 재삽입해 같은 null reader가 ghost 초안 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-24","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/case.json","artifactSha256":"82cc1f9f51729baa25031e011f220968087be8637f42768fbbfa9fcd546010a8","lines":{"start":35,"end":35},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-011-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적의미: 실제 폐기된 legacy draft 행을 같은 owner/key에 재삽입해 같은 null reader가 ghost 초안 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-011-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적의미: 실제 폐기된 legacy draft 행을 같은 owner/key에 재삽입해 같은 null reader가 ghost 초안 잔존을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-011-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":81,"end":81},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-011-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-23","path":"error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs","artifactSha256":"0979acf0831002d767d9ee2205e9382a1036c74c2314aaa827ca0815cb0800ed","lines":{"start":261,"end":261},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-011-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-011-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-011-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-011-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-011-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-011-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-011-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-011-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-011","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-012-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 정확 bootstrap 503 두 번과 보류된 세 번째 요청, snapshot owner 유지 및 gate 해제 뒤 실제 성공. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":102,"end":102},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-012-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 정확 bootstrap 503 두 번과 보류된 세 번째 요청, snapshot owner 유지 및 gate 해제 뒤 실제 성공. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":52,"end":52},"valueSha256":"fce4511b6da739d1b935faf7c91c71533b00e2db622ef77926a58244b3240a40","matched":true,"value":"    c.deferCleanup(\"case-012-workspace-route\", async () => {"},{"id":"app-source-current#CASE-012-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 정확 bootstrap 503 두 번과 보류된 세 번째 요청, snapshot owner 유지 및 gate 해제 뒤 실제 성공. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":82,"end":82},"valueSha256":"c835152e09a575accb6bb70b1ca6f920092dfe4d333240d3c2507add97f6670c","matched":true,"value":"    await expect.poll("},{"id":"app-source-current#CASE-012-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 정확 bootstrap 503 두 번과 보류된 세 번째 요청, snapshot owner 유지 및 gate 해제 뒤 실제 성공. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":87,"end":87},"valueSha256":"88829ad11b9e5665c92301f0e01d557aaa12b34d9a54dbcdc324e344c32cd29e","matched":true,"value":"      await expect.poll(() => lifecycle.map(({ operationName }) => operationName)).toEqual(["},{"id":"app-source-current#CASE-012-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-26","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/case.json","artifactSha256":"72659106abe3a2d90283a3bca607efa0d166e6dfd59fb7df0c6462b988895cae","lines":{"start":74,"end":74},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-012-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":171,"end":171},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-012-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-012-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-012-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적의미: 보류된 복구 중 실제 owner snapshot 행을 삭제해 동일 snapshot owner reader가 보존 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":102,"end":102},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-012-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적의미: 보류된 복구 중 실제 owner snapshot 행을 삭제해 동일 snapshot owner reader가 보존 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-26","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/case.json","artifactSha256":"72659106abe3a2d90283a3bca607efa0d166e6dfd59fb7df0c6462b988895cae","lines":{"start":67,"end":67},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-012-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적의미: 보류된 복구 중 실제 owner snapshot 행을 삭제해 동일 snapshot owner reader가 보존 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-012-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적의미: 보류된 복구 중 실제 owner snapshot 행을 삭제해 동일 snapshot owner reader가 보존 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-012-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":102,"end":102},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-012-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":171,"end":171},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-012-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-25","path":"error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs","artifactSha256":"e34d5b2ecb2fa971ceefe1b9874747b949adb4b3bdabd7e35a048a76403c6dec","lines":{"start":45,"end":45},"valueSha256":"c73abf33861cc4be104e8aabf389ff884cae9a9dba45624317830b90a5b62a52","matched":true,"value":"    captureConnectivityLifecycle(page, lifecycle, c.onPage);"},{"id":"app-source-current#CASE-012-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-012-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-012-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-012-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-012-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-012-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-012-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-012","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-013-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 실제 refresh 성공/TOKEN_REFRESHED 뒤 JWT401 두 번, 세 번째 요청 보류·owner 유지·성공 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":147,"end":147},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-013-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 실제 refresh 성공/TOKEN_REFRESHED 뒤 JWT401 두 번, 세 번째 요청 보류·owner 유지·성공 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":42,"end":42},"valueSha256":"e7eb312a250358ed6f72806e38a108b2e4cda00f13c1f6d10411ea3a0c93e9bf","matched":true,"value":"    c.deferCleanup(\"case-013-original-workspace-route\", async () => {"},{"id":"app-source-current#CASE-013-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 실제 refresh 성공/TOKEN_REFRESHED 뒤 JWT401 두 번, 세 번째 요청 보류·owner 유지·성공 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":57,"end":57},"valueSha256":"656387d1d339e3c0b2d5ae9cc5a0ace253c2c085ab671eb8d9e5c4c4f7a27804","matched":true,"value":"    c.deferCleanup(\"case-013-fault-workspace-route\", async () => {"},{"id":"app-source-current#CASE-013-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 실제 refresh 성공/TOKEN_REFRESHED 뒤 JWT401 두 번, 세 번째 요청 보류·owner 유지·성공 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":109,"end":109},"valueSha256":"77d4ab0bff1a4c88ee5daa1bde2a614f09f1e615cd988a5eaa7b0110d9b76d5c","matched":true,"value":"      await expect.poll("},{"id":"app-source-current#CASE-013-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-28","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/case.json","artifactSha256":"38c477f185a6740224e5964dd0ef0218ceda785268c764cd82a9ac3df0f6e597","lines":{"start":85,"end":85},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-013-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":218,"end":218},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-013-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-013-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-013-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적의미: owner snapshot의 profile.id만 다른 id로 바꾸어 같은 profile-owner reader가 소유권 불일치를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":147,"end":147},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-013-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적의미: owner snapshot의 profile.id만 다른 id로 바꾸어 같은 profile-owner reader가 소유권 불일치를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-28","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/case.json","artifactSha256":"38c477f185a6740224e5964dd0ef0218ceda785268c764cd82a9ac3df0f6e597","lines":{"start":78,"end":78},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-013-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적의미: owner snapshot의 profile.id만 다른 id로 바꾸어 같은 profile-owner reader가 소유권 불일치를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-013-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적의미: owner snapshot의 profile.id만 다른 id로 바꾸어 같은 profile-owner reader가 소유권 불일치를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-013-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":147,"end":147},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-013-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":218,"end":218},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-013-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":230,"end":230},"valueSha256":"09c6bc1b83c45cc815c086663c9a9cae1a28dc9f4f3199860f36eb75fae7af3d","matched":true,"value":"  onPage(page, \"response\", (response) => {"},{"id":"app-source-current#CASE-013-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-27","path":"error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs","artifactSha256":"5bbedf23d7c1ab799cf2c140f403417b33a43d4e17f988d961ecd40bd584edc6","lines":{"start":64,"end":64},"valueSha256":"c73abf33861cc4be104e8aabf389ff884cae9a9dba45624317830b90a5b62a52","matched":true,"value":"    captureConnectivityLifecycle(page, lifecycle, c.onPage);"},{"id":"app-source-current#CASE-013-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-013-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-013-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-013-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-013-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-013-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-013","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-014-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 기존 문서 소멸, schema3/DBversion2 snapshot, 새 문서 503 두 번·보류·동일 owner/Home 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":119,"end":119},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-014-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 기존 문서 소멸, schema3/DBversion2 snapshot, 새 문서 503 두 번·보류·동일 owner/Home 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":55,"end":55},"valueSha256":"0bc300ccc6f53edc05273e715b892d10d956459fd85c2091b543f17c81e64835","matched":true,"value":"    await expect(page).toHaveURL(/\\/manifest\\.webmanifest$/);"},{"id":"app-source-current#CASE-014-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 기존 문서 소멸, schema3/DBversion2 snapshot, 새 문서 503 두 번·보류·동일 owner/Home 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":69,"end":69},"valueSha256":"4c1a48a5be6d3f05f642236f02b5bd3a97cad6e6e6777a07bb6d4e9e6499d637","matched":true,"value":"    c.deferCleanup(\"case-014-workspace-route\", async () => {"},{"id":"app-source-current#CASE-014-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 기존 문서 소멸, schema3/DBversion2 snapshot, 새 문서 503 두 번·보류·동일 owner/Home 회복. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":99,"end":99},"valueSha256":"c835152e09a575accb6bb70b1ca6f920092dfe4d333240d3c2507add97f6670c","matched":true,"value":"    await expect.poll("},{"id":"app-source-current#CASE-014-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-30","path":"error-cases/CASE-014-cold-start-snapshot-reading/case.json","artifactSha256":"8aef397b50a27e759c8e45ec3995a0b1d595c1659f650631a49640c00a43b934","lines":{"start":74,"end":74},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-014-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":189,"end":189},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-014-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-014-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-014-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적의미: 실제 owner snapshot의 homeDashboard를 제거하여 동일 homeAsOf reader가 Home payload 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":119,"end":119},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-014-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적의미: 실제 owner snapshot의 homeDashboard를 제거하여 동일 homeAsOf reader가 Home payload 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-30","path":"error-cases/CASE-014-cold-start-snapshot-reading/case.json","artifactSha256":"8aef397b50a27e759c8e45ec3995a0b1d595c1659f650631a49640c00a43b934","lines":{"start":67,"end":67},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-014-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적의미: 실제 owner snapshot의 homeDashboard를 제거하여 동일 homeAsOf reader가 Home payload 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-014-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적의미: 실제 owner snapshot의 homeDashboard를 제거하여 동일 homeAsOf reader가 Home payload 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-014-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":119,"end":119},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-014-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":189,"end":189},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-014-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-29","path":"error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs","artifactSha256":"4ba0f920a76f2c9de72181ec966456f74d166f1863ec02ac86f41d83e6607602","lines":{"start":63,"end":63},"valueSha256":"ebc533158be0a6f5c3dd94ecbe8eec7212f2d7c950de6448a6089947848b33bf","matched":true,"value":"    captureConnectivityLifecycle(coldPage, lifecycle, c.onPage);"},{"id":"app-source-current#CASE-014-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-014-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-014-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-014-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-014-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-014-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-014-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-014","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-015-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 초기 save503→복구 save503→성공, 정확 owner pending1과 동일 hash/body, fence/attempt 증가, 최종 서버1행. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":123,"end":123},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-015-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 초기 save503→복구 save503→성공, 정확 owner pending1과 동일 hash/body, fence/attempt 증가, 최종 서버1행. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":41,"end":41},"valueSha256":"fd8c819409fae0cb39a9c8a0493cf573f274a42ef4baccdfc16b095987573c7f","matched":true,"value":"    const secondRecoveryGate = new Promise((resolve) => { releaseSecondRecovery = resolve; });"},{"id":"app-source-current#CASE-015-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 초기 save503→복구 save503→성공, 정확 owner pending1과 동일 hash/body, fence/attempt 증가, 최종 서버1행. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":104,"end":104},"valueSha256":"03df96bf1b5c6596effadadc89bdb4ad77b4269b3cf90d6f02134b949d95f00c","matched":true,"value":"      await expect.poll(() => heldRecoveryCycles, {"},{"id":"app-source-current#CASE-015-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 초기 save503→복구 save503→성공, 정확 owner pending1과 동일 hash/body, fence/attempt 증가, 최종 서버1행. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":152,"end":152},"valueSha256":"12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126","matched":true,"value":""},{"id":"app-source-current#CASE-015-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-32","path":"error-cases/CASE-015-degraded-create-recovery-flush/case.json","artifactSha256":"5c779f76cb6dea88271bae1583b98973479d18a671e0524f920a45b866535463","lines":{"start":89,"end":89},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-015-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":260,"end":260},"valueSha256":"983a04970bbdcd82d31204c566d2f1d2b2ff296d8fcf798e846c34ac35b0e6ab","matched":true,"value":"        await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-015-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-015-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-015-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적의미: 실제 같은 운동의 pending 사본을 별도 mutation key로 추가해 같은 owner pending count reader가 1→2 중복을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":123,"end":123},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-015-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적의미: 실제 같은 운동의 pending 사본을 별도 mutation key로 추가해 같은 owner pending count reader가 1→2 중복을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-32","path":"error-cases/CASE-015-degraded-create-recovery-flush/case.json","artifactSha256":"5c779f76cb6dea88271bae1583b98973479d18a671e0524f920a45b866535463","lines":{"start":82,"end":82},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-015-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적의미: 실제 같은 운동의 pending 사본을 별도 mutation key로 추가해 같은 owner pending count reader가 1→2 중복을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-015-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적의미: 실제 같은 운동의 pending 사본을 별도 mutation key로 추가해 같은 owner pending count reader가 1→2 중복을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-015-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":123,"end":123},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-015-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":260,"end":260},"valueSha256":"983a04970bbdcd82d31204c566d2f1d2b2ff296d8fcf798e846c34ac35b0e6ab","matched":true,"value":"        await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-015-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-31","path":"error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs","artifactSha256":"f0fec3d3579a4fb4019e8395690026fa0e2da249ad3140c6b073428dfde0289e","lines":{"start":402,"end":402},"valueSha256":"ffb9413a707a91f117b18bfe4186bbc8bb0e4a032560c0c29de48c7ab5bc5f94","matched":true,"value":"  onPage(page, \"request\", (request) => {"},{"id":"app-source-current#CASE-015-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-015-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-015-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-015-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-015-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-015-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-015-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-015","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-016-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: A/B/C 구성·자유기록 D의 create/reload/edit 왕복, 편집기 소실, revision 증가 및 구 child 제거. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":237,"end":237},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-016-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: A/B/C 구성·자유기록 D의 create/reload/edit 왕복, 편집기 소실, revision 증가 및 구 child 제거. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":191,"end":191},"valueSha256":"bd6260f8d806fcf059056be137e109c459e64b525c284574fb4c7e29cc0e0ac5","matched":true,"value":"    await expect(saveButton).toBeEnabled();"},{"id":"app-source-current#CASE-016-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: A/B/C 구성·자유기록 D의 create/reload/edit 왕복, 편집기 소실, revision 증가 및 구 child 제거. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":197,"end":197},"valueSha256":"42f9652fe3cef22c6bc6420cd2aa7fdf9accb403c996a3f7a3f1286997dcbc61","matched":true,"value":"        const plan = await waitForPlanByTitle(c, planTitle);"},{"id":"app-source-current#CASE-016-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: A/B/C 구성·자유기록 D의 create/reload/edit 왕복, 편집기 소실, revision 증가 및 구 child 제거. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":206,"end":206},"valueSha256":"aeee2f5553e818296551065524479ca3734d1156ba081f0d923abc0aa2aff958","matched":true,"value":"        await expect(compose).toBeHidden();"},{"id":"app-source-current#CASE-016-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-34","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/case.json","artifactSha256":"4c3686111545f105c238a80c111806ca5edb1bf2180990e9905f9949e121c47d","lines":{"start":37,"end":37},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-016-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":421,"end":421},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-016-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-016-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-016-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적의미: 실제 compose scrim을 저장/reload 뒤 다시 삽입하여 같은 count0 reader가 사용자 입력을 막는 잔존 편집기를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":237,"end":237},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-016-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적의미: 실제 compose scrim을 저장/reload 뒤 다시 삽입하여 같은 count0 reader가 사용자 입력을 막는 잔존 편집기를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-34","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/case.json","artifactSha256":"4c3686111545f105c238a80c111806ca5edb1bf2180990e9905f9949e121c47d","lines":{"start":30,"end":30},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-016-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적의미: 실제 compose scrim을 저장/reload 뒤 다시 삽입하여 같은 count0 reader가 사용자 입력을 막는 잔존 편집기를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-016-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적의미: 실제 compose scrim을 저장/reload 뒤 다시 삽입하여 같은 count0 reader가 사용자 입력을 막는 잔존 편집기를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-016-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":237,"end":237},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-016-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-33","path":"error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs","artifactSha256":"4b9e44004330f152bc5a3a8d08221a78a3681c722e31833ac1e9daa75394e4ae","lines":{"start":421,"end":421},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-016-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-016-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-016-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-016-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-016-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-016-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-016-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-016-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-016","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-017-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 대상74×5/대조58×8·파일 준비, 대상 child id 직접 삭제 조회 및 대조 profile/운동 전체 원본·파일·재진입 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":218,"end":218},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-017-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 대상74×5/대조58×8·파일 준비, 대상 child id 직접 삭제 조회 및 대조 profile/운동 전체 원본·파일·재진입 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":77,"end":77},"valueSha256":"99ff660fa816e9d2514f7e5a9457dcdc5d0886f7ce32c1113a00ce82427bc509","matched":true,"value":"    await test.step(\"CASE-017 checkpoint: target and control accounts hold isolated workouts and storage objects before deletion\", async () => {"},{"id":"app-source-current#CASE-017-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 대상74×5/대조58×8·파일 준비, 대상 child id 직접 삭제 조회 및 대조 profile/운동 전체 원본·파일·재진입 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":118,"end":118},"valueSha256":"3dba0ca6118c8c414236b6a669a237414e12cd8ec29195016c5c21813e87c308","matched":true,"value":"    await test.step(\"CASE-017 checkpoint: the in-app two-step confirmation deletes the account and erases auth, database, and storage while preserving the control account\", async () => {"},{"id":"app-source-current#CASE-017-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 대상74×5/대조58×8·파일 준비, 대상 child id 직접 삭제 조회 및 대조 profile/운동 전체 원본·파일·재진입 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":164,"end":164},"valueSha256":"b56c90ab3ef2eadd02851364396d5ae3b4685988815cb713266a4ce65c637d47","matched":true,"value":"        expect("},{"id":"app-source-current#CASE-017-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-36","path":"error-cases/CASE-017-account-deletion-round-trip/case.json","artifactSha256":"313301e930f5888b3d5e5f2291fbbdaa6bddb4732e3e45ab72e12bf1de606fca","lines":{"start":35,"end":35},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-017-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":286,"end":286},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-017-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-017-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-017-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적의미: 삭제한 owner prefix에 실제 storage object1개를 업로드해 동일3bucket listing reader가 잔존파일을 검출하고 원복한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":218,"end":218},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-017-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적의미: 삭제한 owner prefix에 실제 storage object1개를 업로드해 동일3bucket listing reader가 잔존파일을 검출하고 원복한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-36","path":"error-cases/CASE-017-account-deletion-round-trip/case.json","artifactSha256":"313301e930f5888b3d5e5f2291fbbdaa6bddb4732e3e45ab72e12bf1de606fca","lines":{"start":28,"end":28},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-017-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적의미: 삭제한 owner prefix에 실제 storage object1개를 업로드해 동일3bucket listing reader가 잔존파일을 검출하고 원복한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-017-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적의미: 삭제한 owner prefix에 실제 storage object1개를 업로드해 동일3bucket listing reader가 잔존파일을 검출하고 원복한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-017-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":218,"end":218},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-017-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-35","path":"error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs","artifactSha256":"191ef69fb61ded0fae960471150eb8042741b57aa0014d8763bb7d0f7056ea56","lines":{"start":286,"end":286},"valueSha256":"4d43d921646cc2699ab63c3b48d0b9aae8e9ab3bf5ab77bf69c09d5b98a16d05","matched":true,"value":"      await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-017-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-017-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-017-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-017-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-017-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-017-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-017-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-017-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-017","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-018-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 실제 양방향 follow와 포스트 준비, 신고/차단/권한 거절/정지·해제/금칙·정상 댓글의 각 응답과 원본 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":180,"end":180},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-018-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 실제 양방향 follow와 포스트 준비, 신고/차단/권한 거절/정지·해제/금칙·정상 댓글의 각 응답과 원본 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":24,"end":24},"valueSha256":"4f7871e3320c5362c803e995a3fbdc0b0d494adbd4e6fdf06775ae15a7016e70","matched":true,"value":"    c.deferCleanup(\"case-018-admin-registry\", async () => {"},{"id":"app-source-current#CASE-018-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 실제 양방향 follow와 포스트 준비, 신고/차단/권한 거절/정지·해제/금칙·정상 댓글의 각 응답과 원본 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":40,"end":40},"valueSha256":"d9cc1c0c38c04bd2dd83809516fdb957eddb800881ad83a35ac66e78678c3652","matched":true,"value":"    c.deferCleanup(\"case-018-content-takedown\", async () => {"},{"id":"app-source-current#CASE-018-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 실제 양방향 follow와 포스트 준비, 신고/차단/권한 거절/정지·해제/금칙·정상 댓글의 각 응답과 원본 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":63,"end":63},"valueSha256":"70e423ad9793ae72b8043564843fb1a3f4948f6e74c55d44d7c79d445ecac158","matched":true,"value":"    expect(followsBeforeBlock.error).toBeNull();"},{"id":"app-source-current#CASE-018-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-38","path":"error-cases/CASE-018-ugc-report-block-round-trip/case.json","artifactSha256":"3ba9118722d2738d998b8804855b4cf7d242e033df4928b50d59ec06c3d74057","lines":{"start":37,"end":37},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-018-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":305,"end":305},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-018-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-018-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-018-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적의미: 실제 follow 조회 응답에 차단전 reverse follow를 다시 넣어 동일 잔존 reader가 양방향 해제 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":180,"end":180},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-018-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적의미: 실제 follow 조회 응답에 차단전 reverse follow를 다시 넣어 동일 잔존 reader가 양방향 해제 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-38","path":"error-cases/CASE-018-ugc-report-block-round-trip/case.json","artifactSha256":"3ba9118722d2738d998b8804855b4cf7d242e033df4928b50d59ec06c3d74057","lines":{"start":30,"end":30},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-018-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적의미: 실제 follow 조회 응답에 차단전 reverse follow를 다시 넣어 동일 잔존 reader가 양방향 해제 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-018-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적의미: 실제 follow 조회 응답에 차단전 reverse follow를 다시 넣어 동일 잔존 reader가 양방향 해제 실패를 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-018-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":180,"end":180},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-018-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-37","path":"error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs","artifactSha256":"1e8bc57cfb30ed90f58834012ae0e05b2a1b97bf3bbc6f096da6f267453a73fe","lines":{"start":305,"end":305},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-018-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-018-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-018-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-018-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-018-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-018-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-018-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-018-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-018","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-019-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 회원1RM200·73%·5kg 단위에서 회원145kg, 작성자999kg가 저장·보드·prefill에 유입되지 않음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":226,"end":226},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-019-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 회원1RM200·73%·5kg 단위에서 회원145kg, 작성자999kg가 저장·보드·prefill에 유입되지 않음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":48,"end":48},"valueSha256":"9c10c9959c925536cc25da473a40fb12f72280cee6216aa0b6288feb8e68a994","matched":true,"value":"          record: { exerciseId: boardExercise.id, value: 200, achievedOn: new Date(Date.now() - 86_400_000).toISOString().slice(0, 10) },"},{"id":"app-source-current#CASE-019-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 회원1RM200·73%·5kg 단위에서 회원145kg, 작성자999kg가 저장·보드·prefill에 유입되지 않음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":58,"end":58},"valueSha256":"fd92145f5434fe5ff48e3d1e40320c260d025df3405bf62248fc481da62d1a81","matched":true,"value":"        await expect.poll(async () => {"},{"id":"app-source-current#CASE-019-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 회원1RM200·73%·5kg 단위에서 회원145kg, 작성자999kg가 저장·보드·prefill에 유입되지 않음. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":128,"end":128},"valueSha256":"876dd4ca8100b1ed3fd51795064dac3fd2b014de712c6a316b4ff8943aa7e603","matched":true,"value":"        expect(Number(savedSet?.load_pct), \"CASE-019: the raw percent must be stored on the set\").toBe(70);"},{"id":"app-source-current#CASE-019-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-40","path":"error-cases/CASE-019-group-board-percent-round-trip/case.json","artifactSha256":"bfa0824053c796ee6342d756e11cd149099a65a3b58ddb28921a9b972d6daa7a","lines":{"start":37,"end":37},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-019-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":238,"end":238},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-019-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-019-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-019-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적의미: 실제 회원 프리필 DOM145를 작성자 sentinel999로 바꿔 동일 load reader가 잘못된 작성자기준 환산을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":226,"end":226},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-019-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적의미: 실제 회원 프리필 DOM145를 작성자 sentinel999로 바꿔 동일 load reader가 잘못된 작성자기준 환산을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-40","path":"error-cases/CASE-019-group-board-percent-round-trip/case.json","artifactSha256":"bfa0824053c796ee6342d756e11cd149099a65a3b58ddb28921a9b972d6daa7a","lines":{"start":30,"end":30},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-019-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적의미: 실제 회원 프리필 DOM145를 작성자 sentinel999로 바꿔 동일 load reader가 잘못된 작성자기준 환산을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-019-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적의미: 실제 회원 프리필 DOM145를 작성자 sentinel999로 바꿔 동일 load reader가 잘못된 작성자기준 환산을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-019-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":226,"end":226},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-019-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-39","path":"error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs","artifactSha256":"678194b38c81777bbf310f5ab80d5d62dbbf87b47fbf629740872615c0cf5d5c","lines":{"start":238,"end":238},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-019-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-019-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-019-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-019-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-019-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-019-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-019-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-019-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-019","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-020-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 빌더 0/1개 잠김·2개 허용·5개 상한과 여섯 슬롯 부재, 두 구성의 parts10+10 저장/reload/prefill. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":171,"end":171},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-020-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 빌더 0/1개 잠김·2개 허용·5개 상한과 여섯 슬롯 부재, 두 구성의 parts10+10 저장/reload/prefill. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":52,"end":52},"valueSha256":"b5d3a21d99a1786fddbcb702048805cf1841f3990b875283c58905919f372b07","matched":true,"value":"        expect(second.error).toBeNull();"},{"id":"app-source-current#CASE-020-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 빌더 0/1개 잠김·2개 허용·5개 상한과 여섯 슬롯 부재, 두 구성의 parts10+10 저장/reload/prefill. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":107,"end":107},"valueSha256":"1a9b00ca66a57108f580fd5ddab62c5a22d5a48fceaa3275f07fc1d633829b70","matched":true,"value":"        await expect(builder).toBeVisible();"},{"id":"app-source-current#CASE-020-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 빌더 0/1개 잠김·2개 허용·5개 상한과 여섯 슬롯 부재, 두 구성의 parts10+10 저장/reload/prefill. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":135,"end":135},"valueSha256":"d3ca20df45448a0b70297b27a4317cd01cdd9acc23c1986451012dcf5271c697","matched":true,"value":"        await expect(editSheet).toBeVisible();"},{"id":"app-source-current#CASE-020-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-42","path":"error-cases/CASE-020-group-board-composite-round-trip/case.json","artifactSha256":"155ae9718bcdfe759440ddb6a1f995ec9494dcb989c518dc5a0640fb49b80412","lines":{"start":36,"end":36},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-020-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":233,"end":233},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-020-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-020-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-020-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적의미: 실제 get_group_board_v1 응답의 두 parts 중 하나를 제거해 동일 parts 배열 reader가 복합동작 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":171,"end":171},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-020-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적의미: 실제 get_group_board_v1 응답의 두 parts 중 하나를 제거해 동일 parts 배열 reader가 복합동작 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-42","path":"error-cases/CASE-020-group-board-composite-round-trip/case.json","artifactSha256":"155ae9718bcdfe759440ddb6a1f995ec9494dcb989c518dc5a0640fb49b80412","lines":{"start":29,"end":29},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-020-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적의미: 실제 get_group_board_v1 응답의 두 parts 중 하나를 제거해 동일 parts 배열 reader가 복합동작 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-020-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적의미: 실제 get_group_board_v1 응답의 두 parts 중 하나를 제거해 동일 parts 배열 reader가 복합동작 유실을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-020-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":171,"end":171},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-020-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-41","path":"error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs","artifactSha256":"4cda6a12e3a1eeef6b996e9604c0395d69f3845e3da70c06d16804ba041fe3fc","lines":{"start":233,"end":233},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-020-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-020-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-020-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-020-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-020-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-020-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-020-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-020-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-020","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-021-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 두 reps 입력 뒤 빈 load 잠김→명시0 허용→빈값 재잠김→20 허용, 완료/reload의 동작별 reps 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":88,"end":88},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-021-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 두 reps 입력 뒤 빈 load 잠김→명시0 허용→빈값 재잠김→20 허용, 완료/reload의 동작별 reps 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":81,"end":81},"valueSha256":"d3ca20df45448a0b70297b27a4317cd01cdd9acc23c1986451012dcf5271c697","matched":true,"value":"        await expect(editSheet).toBeVisible();"},{"id":"app-source-current#CASE-021-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 두 reps 입력 뒤 빈 load 잠김→명시0 허용→빈값 재잠김→20 허용, 완료/reload의 동작별 reps 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":95,"end":95},"valueSha256":"ba1503ff91d8b802b30de1b2a9817ac245c5b973ececf25f216aaad5513f5e4d","matched":true,"value":"        await loadInput.fill(\"0\");   // 맨몸 복합 = 명시 입력한 0이 유효한 무게"},{"id":"app-source-current#CASE-021-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 두 reps 입력 뒤 빈 load 잠김→명시0 허용→빈값 재잠김→20 허용, 완료/reload의 동작별 reps 보존. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":98,"end":98},"valueSha256":"9f5fd55a947c65e7b989dcb467961fa767eb60af18b9de44e04544127e987069","matched":true,"value":"        await expect(editDone).toBeDisabled();"},{"id":"app-source-current#CASE-021-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-44","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/case.json","artifactSha256":"b1d29f808cdbf8b67dfc88918ac6347a6b4a67c7c0835c2ddf3c99e29f468d7e","lines":{"start":34,"end":34},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-021-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":187,"end":187},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-021-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-021-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-021-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적의미: 빈load 상태에서 실제 disabled attribute를 제거하여 같은 blank-load/disabled reader가 조기저장허용을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":88,"end":88},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-021-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적의미: 빈load 상태에서 실제 disabled attribute를 제거하여 같은 blank-load/disabled reader가 조기저장허용을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-44","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/case.json","artifactSha256":"b1d29f808cdbf8b67dfc88918ac6347a6b4a67c7c0835c2ddf3c99e29f468d7e","lines":{"start":27,"end":27},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-021-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적의미: 빈load 상태에서 실제 disabled attribute를 제거하여 같은 blank-load/disabled reader가 조기저장허용을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-021-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적의미: 빈load 상태에서 실제 disabled attribute를 제거하여 같은 blank-load/disabled reader가 조기저장허용을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-021-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":88,"end":88},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-021-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-43","path":"error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs","artifactSha256":"f8dd7024efde9a46ccb955e5e01653f418192085f03414a0d9c881a11f4c5194","lines":{"start":187,"end":187},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-021-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-021-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-021-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-021-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-021-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-021-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-021-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-021-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-021","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-022-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: shared load input0·개별 입력3, strength60×5와 duration30초의 원자 null 구분 및 reload60kg/30초. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":141,"end":141},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-022-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: shared load input0·개별 입력3, strength60×5와 duration30초의 원자 null 구분 및 reload60kg/30초. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":56,"end":56},"valueSha256":"a97070443134965ebae9bd3a49586d8f63b7748f52b1a46a9b3865c99fa2d5f5","matched":true,"value":"        expect(hold.error).toBeNull();"},{"id":"app-source-current#CASE-022-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: shared load input0·개별 입력3, strength60×5와 duration30초의 원자 null 구분 및 reload60kg/30초. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":76,"end":76},"valueSha256":"d3ca20df45448a0b70297b27a4317cd01cdd9acc23c1986451012dcf5271c697","matched":true,"value":"        await expect(editSheet).toBeVisible();"},{"id":"app-source-current#CASE-022-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: shared load input0·개별 입력3, strength60×5와 duration30초의 원자 null 구분 및 reload60kg/30초. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":86,"end":86},"valueSha256":"40efd7dffd83c99fcc88f40104016bcee4780e69973cd24b6ac7835c47b02f52","matched":true,"value":"        await expect(editDone).toBeEnabled();"},{"id":"app-source-current#CASE-022-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-46","path":"error-cases/CASE-022-live-mixed-composite-round-trip/case.json","artifactSha256":"41dadf35ffe786ba08b33a8d180b6e02bb53e03e5fd6890477230d89e3d6c13f","lines":{"start":32,"end":32},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-022-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":168,"end":168},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-022-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-022-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-022-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적의미: 실제 duration set REST 응답에 strength load60을 섞어 동일 hold-load reader의 null 단언이 원자오염을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":141,"end":141},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-022-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적의미: 실제 duration set REST 응답에 strength load60을 섞어 동일 hold-load reader의 null 단언이 원자오염을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-46","path":"error-cases/CASE-022-live-mixed-composite-round-trip/case.json","artifactSha256":"41dadf35ffe786ba08b33a8d180b6e02bb53e03e5fd6890477230d89e3d6c13f","lines":{"start":25,"end":25},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-022-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적의미: 실제 duration set REST 응답에 strength load60을 섞어 동일 hold-load reader의 null 단언이 원자오염을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-022-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적의미: 실제 duration set REST 응답에 strength load60을 섞어 동일 hold-load reader의 null 단언이 원자오염을 검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-022-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":141,"end":141},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-022-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-45","path":"error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs","artifactSha256":"d0e02656fc435f313ebe7d2d3e91d015aadffbbe392915cbd3481011089ec6ba","lines":{"start":168,"end":168},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-022-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-022-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-022-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-022-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-022-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-022-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-022-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-022-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-022","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-023-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 완료 직후 연속수정의 각 서버 revision, 최종 값/note와 원래 child id 유지, 오류 표면0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":218,"end":218},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-023-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 완료 직후 연속수정의 각 서버 revision, 최종 값/note와 원래 child id 유지, 오류 표면0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":62,"end":62},"valueSha256":"a5c20d2120f30d9fd3aa8343f3e135b09514773c9ec41a28f2e2665da8506ab4","matched":true,"value":"      await expect.poll(async () => {"},{"id":"app-source-current#CASE-023-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 완료 직후 연속수정의 각 서버 revision, 최종 값/note와 원래 child id 유지, 오류 표면0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":76,"end":76},"valueSha256":"f4e99eace03b16c28ff2f501667afb7b0ed435602ae1914e96d58430be306155","matched":true,"value":"      await expect.poll(async () => ("},{"id":"app-source-current#CASE-023-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 완료 직후 연속수정의 각 서버 revision, 최종 값/note와 원래 child id 유지, 오류 표면0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":147,"end":147},"valueSha256":"1a4c85fbbae870439ad4d9ebff8e56bfa744c16aee22b3b25094b19dba99fddf","matched":true,"value":"        const persisted = await c.waitForSessionByTitle(sessionTitle);"},{"id":"app-source-current#CASE-023-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-48","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/case.json","artifactSha256":"3eecaeaa19ebc0841e44724b698a7e193a50c2e7d71ec546027c580d5b37f525","lines":{"start":38,"end":38},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-023-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":250,"end":250},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-023-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-023-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-023-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적의미: 실제 최종 exercise_set_part 응답의 한id를다른id로 바꿔 동일 child-id reader가 재발급/행교체를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":218,"end":218},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-023-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적의미: 실제 최종 exercise_set_part 응답의 한id를다른id로 바꿔 동일 child-id reader가 재발급/행교체를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-48","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/case.json","artifactSha256":"3eecaeaa19ebc0841e44724b698a7e193a50c2e7d71ec546027c580d5b37f525","lines":{"start":31,"end":31},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-023-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적의미: 실제 최종 exercise_set_part 응답의 한id를다른id로 바꿔 동일 child-id reader가 재발급/행교체를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-023-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적의미: 실제 최종 exercise_set_part 응답의 한id를다른id로 바꿔 동일 child-id reader가 재발급/행교체를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-023-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":218,"end":218},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-023-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-47","path":"error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs","artifactSha256":"94406e486f29f583d6b16738b4448ed25a9a5f885d937b639f3e1268c1b8cf28","lines":{"start":250,"end":250},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-023-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-023-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-023-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-023-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-023-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-023-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-023-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-023-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-023","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-024-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 과거 기록의 load·시간 수정과 별도 note-only 수정, revision 증가·원래 child id·reload 값 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":222,"end":222},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-024-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 과거 기록의 load·시간 수정과 별도 note-only 수정, revision 증가·원래 child id·reload 값 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":97,"end":97},"valueSha256":"a5c20d2120f30d9fd3aa8343f3e135b09514773c9ec41a28f2e2665da8506ab4","matched":true,"value":"      await expect.poll(async () => {"},{"id":"app-source-current#CASE-024-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 과거 기록의 load·시간 수정과 별도 note-only 수정, revision 증가·원래 child id·reload 값 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":143,"end":143},"valueSha256":"d3ca20df45448a0b70297b27a4317cd01cdd9acc23c1986451012dcf5271c697","matched":true,"value":"        await expect(editSheet).toBeVisible();"},{"id":"app-source-current#CASE-024-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 과거 기록의 load·시간 수정과 별도 note-only 수정, revision 증가·원래 child id·reload 값 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":172,"end":172},"valueSha256":"5d6a30966bd7136c1d64e02bc19dbce43b1ab207c564ebc43635d79c9a3fac28","matched":true,"value":"        await expect(timeSave).toBeEnabled();"},{"id":"app-source-current#CASE-024-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-50","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/case.json","artifactSha256":"ef8e54ff3df223fef86cd46bf045a549eb66c34b642ac03e14f3cc494429ec85","lines":{"start":33,"end":33},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-024-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":252,"end":252},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-024-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-024-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-024-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적의미: 실제session 응답의새note를이전note로되돌려동일note reader가 metadata-only 저장유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":222,"end":222},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-024-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적의미: 실제session 응답의새note를이전note로되돌려동일note reader가 metadata-only 저장유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-50","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/case.json","artifactSha256":"ef8e54ff3df223fef86cd46bf045a549eb66c34b642ac03e14f3cc494429ec85","lines":{"start":26,"end":26},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-024-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적의미: 실제session 응답의새note를이전note로되돌려동일note reader가 metadata-only 저장유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-024-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적의미: 실제session 응답의새note를이전note로되돌려동일note reader가 metadata-only 저장유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-024-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":222,"end":222},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-024-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-49","path":"error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs","artifactSha256":"9eb2eb3ddf79226e2b08ed265eb103add63422d4f285b8bf6e4ce6f81d63612a","lines":{"start":252,"end":252},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-024-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-024-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-024-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-024-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-024-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-024-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-024-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-024-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-024","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-025-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 실제 계획에서 라이브 시작·완료 저장, 같은 plan id completed 전환과 reload 계획 카드 소멸. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":276,"end":276},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-025-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 실제 계획에서 라이브 시작·완료 저장, 같은 plan id completed 전환과 reload 계획 카드 소멸. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":169,"end":169},"valueSha256":"e81b1b8bca102f8a4785566600d42d455c9f376d5680d6787019d85019a0edee","matched":true,"value":"        await expect(saveBar).toBeEnabled();"},{"id":"app-source-current#CASE-025-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 실제 계획에서 라이브 시작·완료 저장, 같은 plan id completed 전환과 reload 계획 카드 소멸. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":180,"end":180},"valueSha256":"adb37e5f24371213bbcc85afa28ca88bc0a6631133996281d995af2aaaea072b","matched":true,"value":"        const persisted = await waitForPlanByTitle(c, planTitle);"},{"id":"app-source-current#CASE-025-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 실제 계획에서 라이브 시작·완료 저장, 같은 plan id completed 전환과 reload 계획 카드 소멸. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":209,"end":209},"valueSha256":"8db0e6dc933b8a2a37908de1f756c15cdf6c0d6a7ac81e64057b87135791cc5d","matched":true,"value":"        await expect(record).toBeVisible();"},{"id":"app-source-current#CASE-025-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-52","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/case.json","artifactSha256":"5c3ac28636160d9ec6ae8d4481203b86c0be1426f54505af425bfb7204f15d6e","lines":{"start":34,"end":34},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-025-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":312,"end":312},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-025-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-025-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-025-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적의미: 실제원계획의session 응답을completed에서planned로바꿔동일status reader가계획미종료를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":276,"end":276},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-025-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적의미: 실제원계획의session 응답을completed에서planned로바꿔동일status reader가계획미종료를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-52","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/case.json","artifactSha256":"5c3ac28636160d9ec6ae8d4481203b86c0be1426f54505af425bfb7204f15d6e","lines":{"start":27,"end":27},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-025-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적의미: 실제원계획의session 응답을completed에서planned로바꿔동일status reader가계획미종료를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-025-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적의미: 실제원계획의session 응답을completed에서planned로바꿔동일status reader가계획미종료를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-025-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":276,"end":276},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-025-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-51","path":"error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs","artifactSha256":"503bf96956916795155fdbd158ddf5b1e61c26bd43cf32542627a185e1b4cd3f","lines":{"start":312,"end":312},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-025-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-025-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-025-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-025-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-025-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-025-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-025-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-025-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-025","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-026-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 실제 그룹 보드 시작·완료·note-only 재저장, revision2·원래 source_ref/child id 및 reload 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":231,"end":231},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-026-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 실제 그룹 보드 시작·완료·note-only 재저장, revision2·원래 source_ref/child id 및 reload 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":95,"end":95},"valueSha256":"e4ba49c27db1d29bcf7f7197397beda1c1534313e1a9a0ba7ec2ad5d0248d13c","matched":true,"value":"    const waitForGroupBoardSession = async () => {"},{"id":"app-source-current#CASE-026-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 실제 그룹 보드 시작·완료·note-only 재저장, revision2·원래 source_ref/child id 및 reload 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":117,"end":117},"valueSha256":"a5c20d2120f30d9fd3aa8343f3e135b09514773c9ec41a28f2e2665da8506ab4","matched":true,"value":"      await expect.poll(async () => {"},{"id":"app-source-current#CASE-026-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 실제 그룹 보드 시작·완료·note-only 재저장, revision2·원래 source_ref/child id 및 reload 유지. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":166,"end":166},"valueSha256":"50ea1919440ae8f6689a4e88313d6f563195d09640b3132f0f3465c99909b033","matched":true,"value":"        expect(Number(savedSet?.load)).toBe(BOARD_SET.load);"},{"id":"app-source-current#CASE-026-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-54","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/case.json","artifactSha256":"71a697f3fdbf5fbbc20851fbed1376386f88cf9671a371f881360a79ade85408","lines":{"start":33,"end":33},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-026-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":259,"end":259},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-026-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-026-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-026-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적의미: revision2 이후 실제session HTTP응답source_ref를local로바꿔동일출처reader가boardlineage 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":231,"end":231},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-026-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적의미: revision2 이후 실제session HTTP응답source_ref를local로바꿔동일출처reader가boardlineage 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-54","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/case.json","artifactSha256":"71a697f3fdbf5fbbc20851fbed1376386f88cf9671a371f881360a79ade85408","lines":{"start":26,"end":26},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-026-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적의미: revision2 이후 실제session HTTP응답source_ref를local로바꿔동일출처reader가boardlineage 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-026-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적의미: revision2 이후 실제session HTTP응답source_ref를local로바꿔동일출처reader가boardlineage 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-026-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":231,"end":231},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-026-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-53","path":"error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs","artifactSha256":"8db17073ac053c55e45fc8c0a2e4da57b35e34d8ac1765a1959f34788cdf257c","lines":{"start":259,"end":259},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-026-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-026-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-026-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-026-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-026-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-026-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-026-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-026-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-026","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-027-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 보드60×5 생성→편집 재진입60→80으로 재저장, 같은 planned session id·updated_at 증가·reload80. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":173,"end":173},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-027-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 보드60×5 생성→편집 재진입60→80으로 재저장, 같은 planned session id·updated_at 증가·reload80. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":86,"end":86},"valueSha256":"f4e99eace03b16c28ff2f501667afb7b0ed435602ae1914e96d58430be306155","matched":true,"value":"      await expect.poll(async () => ("},{"id":"app-source-current#CASE-027-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 보드60×5 생성→편집 재진입60→80으로 재저장, 같은 planned session id·updated_at 증가·reload80. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":95,"end":95},"valueSha256":"0eee2210aa1d8023f35cc21dc91268450641c406a9f17b88904ae141b6752525","matched":true,"value":"      expect(saved.data, \"CASE-027: exactly one board row for today\").toHaveLength(1);"},{"id":"app-source-current#CASE-027-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 보드60×5 생성→편집 재진입60→80으로 재저장, 같은 planned session id·updated_at 증가·reload80. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":148,"end":148},"valueSha256":"4340ee65b8827a58b0fd8b62c161c1f4b4ff008477437c76f83a392e82864c52","matched":true,"value":"        await expect(loadInput).toHaveValue(String(BOARD_SET.load));"},{"id":"app-source-current#CASE-027-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-56","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/case.json","artifactSha256":"ddec8369b29fc56433d9bef1d6b2effd52f62cafcbdbcbefc9cc2333e1c0450f","lines":{"start":33,"end":33},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-027-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":201,"end":201},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-027-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-027-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-027-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적의미: 실제get_group_board_v1 응답의80을저장전60으로되돌려동일board-load reader가stale보드를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":173,"end":173},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-027-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적의미: 실제get_group_board_v1 응답의80을저장전60으로되돌려동일board-load reader가stale보드를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-56","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/case.json","artifactSha256":"ddec8369b29fc56433d9bef1d6b2effd52f62cafcbdbcbefc9cc2333e1c0450f","lines":{"start":26,"end":26},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-027-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적의미: 실제get_group_board_v1 응답의80을저장전60으로되돌려동일board-load reader가stale보드를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-027-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적의미: 실제get_group_board_v1 응답의80을저장전60으로되돌려동일board-load reader가stale보드를검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-027-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":173,"end":173},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-027-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-55","path":"error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs","artifactSha256":"232a48475c789c92228c0bcd888f7bf19bb723284d9a51d7e1d7b6a2cc735e3b","lines":{"start":201,"end":201},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-027-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":139,"end":139},"valueSha256":"c043dd461d64c86519b0329e0c55b6bef20328f09c33e1fac72786c5a4614f21","matched":true,"value":"    const registerPageCleanup = (page) => {"},{"id":"app-source-current#CASE-027-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":351,"end":351},"valueSha256":"f458a2fc63e443196c4d320cba1e282537462b665f9d513efe8298fb983e876d","matched":true,"value":"        const result = await deleteOwnerAfterStats(service, state.userId);"},{"id":"app-source-current#CASE-027-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-027-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-027-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-027-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-027-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-027-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-027","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-028-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 확인 카드 saving/aria-busy=true→saved/false, 추가세트 재저장 revision2 및 reload60×5/60×5/70×5. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":256,"end":256},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-028-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 확인 카드 saving/aria-busy=true→saved/false, 추가세트 재저장 revision2 및 reload60×5/60×5/70×5. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":77,"end":77},"valueSha256":"c736c59406562f0612fead958ca4026d039c5c572d2713c18c5cb457a8411c28","matched":true,"value":"    const waitForRevision = async (revision) => {"},{"id":"app-source-current#CASE-028-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 확인 카드 saving/aria-busy=true→saved/false, 추가세트 재저장 revision2 및 reload60×5/60×5/70×5. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":121,"end":121},"valueSha256":"54305b68f29eb8e4a96ee6647fabcf92ccd721964ff42428e35a00aee16e40b1","matched":true,"value":"      await expect(page.locator('[data-lg-hook=\"exerciseReviewBar\"]')).toBeVisible();"},{"id":"app-source-current#CASE-028-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 확인 카드 saving/aria-busy=true→saved/false, 추가세트 재저장 revision2 및 reload60×5/60×5/70×5. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":166,"end":166},"valueSha256":"1a4c85fbbae870439ad4d9ebff8e56bfa744c16aee22b3b25094b19dba99fddf","matched":true,"value":"        const persisted = await c.waitForSessionByTitle(sessionTitle);"},{"id":"app-source-current#CASE-028-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-58","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/case.json","artifactSha256":"30f9cca8f8c47080f169a5f3aafc441cc11c6cfeee48db7f8e08e58f32956419","lines":{"start":34,"end":34},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-028-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":283,"end":283},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-028-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-028-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-028-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적의미: 실제reload상세에서원래두set DOM노드를제거해같은순서있는세트reader가70×5만남는기존행유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":256,"end":256},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-028-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적의미: 실제reload상세에서원래두set DOM노드를제거해같은순서있는세트reader가70×5만남는기존행유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-58","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/case.json","artifactSha256":"30f9cca8f8c47080f169a5f3aafc441cc11c6cfeee48db7f8e08e58f32956419","lines":{"start":27,"end":27},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-028-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적의미: 실제reload상세에서원래두set DOM노드를제거해같은순서있는세트reader가70×5만남는기존행유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-028-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적의미: 실제reload상세에서원래두set DOM노드를제거해같은순서있는세트reader가70×5만남는기존행유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-028-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":256,"end":256},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-028-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":283,"end":283},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-028-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":46,"end":46},"valueSha256":"1c942812f616dd2374a913816e74f40092b3d837132703b1a1ab753d4fa453c1","matched":true,"value":"    c.onPage(page, \"request\", (request) => {"},{"id":"app-source-current#CASE-028-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-57","path":"error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs","artifactSha256":"8132db3b9830de068d33fd59e28be0959d66b63f118627c9c704ad983d243d05","lines":{"start":51,"end":51},"valueSha256":"ae1cc04392ae012fe6e482c0ae3636aabaa80f911a21f9dc42c0fc803012ecf8","matched":true,"value":"    c.onPage(page, \"response\", (response) => {"},{"id":"app-source-current#CASE-028-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-028-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-028-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-028-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-028-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-028-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-028","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-029-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: update/delete 각각 정확503→owner pending1→보류된 해당 recovery→성공, plan edit503→같은body 성공·queue0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":350,"end":350},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-029-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: update/delete 각각 정확503→owner pending1→보류된 해당 recovery→성공, plan edit503→같은body 성공·queue0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":90,"end":90},"valueSha256":"b975ac2444532155cb7c7ad69a7cf45320043d20e13223cce2b4b8345be4ddbe","matched":true,"value":"      expect(activeRecovery).toBe(kind);"},{"id":"app-source-current#CASE-029-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: update/delete 각각 정확503→owner pending1→보류된 해당 recovery→성공, plan edit503→같은body 성공·queue0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":192,"end":192},"valueSha256":"6c73bb01e9990c293d357b5c0d3f3335ba6c226b107299c43e9744c8177a4f0c","matched":true,"value":"      const deadline = Date.now() + 10_000;"},{"id":"app-source-current#CASE-029-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: update/delete 각각 정확503→owner pending1→보류된 해당 recovery→성공, plan edit503→같은body 성공·queue0. 관련 단언/조건 관측 코드는 존재하지만 이 소스의 실제 실행 증거는 이번 감사에서 읽거나 실행하지 않았다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":313,"end":313},"valueSha256":"b6a792ebab4a46fe21c5dfc8ab340154a2fae85b0a60443fd1cf14f57cfcdd4b","matched":true,"value":"          await expect.poll(() => attempts.update, {"},{"id":"app-source-current#CASE-029-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-60","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/case.json","artifactSha256":"3ede81731d7faf401151c23567240f7d51ef7cd83a3368bb55dcc7ceb1884cba","lines":{"start":148,"end":148},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-029-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":728,"end":728},"valueSha256":"6891341754f77b400d3fc240bb7950cfac80374a431fabf67677ab44b0dd665c","matched":true,"value":"        await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-029-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":79,"end":79},"valueSha256":"d7fdcaf932f52fd9577679a6d47c805c82f9d52bf0f2427ef722ef8fe250c97f","matched":true,"value":"    const quality = inspectCheckpointEvidence({ checkpoints, steps });"},{"id":"app-source-current#CASE-029-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 현재 manifest 필수 checkpoint를 실제 assertion step으로 수집하고 완료 gate 뒤 증거를 남긴다. 현 소스의 필수 단언 실행·비동기 종료 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":260,"end":260},"valueSha256":"aeb71c3f4cdb21d03bfd0867ece9a7c7da79a6f76a654970aeb3fe166c2c8386","matched":true,"value":"      async prove(signal, proof) {"},{"id":"app-source-current#CASE-029-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적의미: 실제보류된update pending행을삭제해동일owner-count reader가durable update 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":350,"end":350},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-029-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적의미: 실제보류된update pending행을삭제해동일owner-count reader가durable update 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-60","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/case.json","artifactSha256":"3ede81731d7faf401151c23567240f7d51ef7cd83a3368bb55dcc7ceb1884cba","lines":{"start":141,"end":141},"valueSha256":"141799ad374e7bc0eb72ae6b7751ed6179a88020718a3ba2b65efee01c67d0cf","matched":true,"value":"    \"qualityControl\": {"},{"id":"app-source-current#CASE-029-9-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적의미: 실제보류된update pending행을삭제해동일owner-count reader가durable update 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":58,"end":58},"valueSha256":"0a250599fa6d63e45844a7d0f5b1f70106643e5cabfbc05c017471a5597e94b3","matched":true,"value":"        const normal = await bounded(read, `${id}/normal`);"},{"id":"app-source-current#CASE-029-9-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적의미: 실제보류된update pending행을삭제해동일owner-count reader가durable update 유실을검출한다. 정상·주입후동일reader의값불일치·1회적용·복원을요구하는엔진과연결된다. 새후보의실제3단계관측및관련공통도구실행증거를아직통합하지않아탐지력합격은보류한다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":67,"end":67},"valueSha256":"83731c99aec548d72c51c2c389e33436282cae795cf536992670e4c2e3cc017b","matched":true,"value":"        const negative = await bounded(read, `${id}/negative`);"},{"id":"app-source-current#CASE-029-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":350,"end":350},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-029-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":728,"end":728},"valueSha256":"6891341754f77b400d3fc240bb7950cfac80374a431fabf67677ab44b0dd665c","matched":true,"value":"        await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-029-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":83,"end":83},"valueSha256":"0d8c3f0a5bffa1e8191612d5a70615a662c3c8adea54123e3df865b652bf81fe","matched":true,"value":"    c.onPage(page, \"request\", (request) => requestSequences.set(request, ++requestSequence));"},{"id":"app-source-current#CASE-029-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"실제 열린 화면 오류를 확인한 뒤 모든 관측 페이지를 닫고, DB/네트워크 오류 증거를 Auth 삭제 전에 확인하도록 공통 정리 순서를 수정했다. 기존 실패·정상 정리 경로와 정확한 자원 readback을 유지했다. 최종 후보의 CASE별 정리 및 실제 Chromium 실패 경로 근거를 연결하기 전까지 U다.","artifact":"source-59","path":"error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs","artifactSha256":"31e84c9a853d777b876fd7e222238515f4b5405bcf6cef820ee17fc12a7e2093","lines":{"start":84,"end":84},"valueSha256":"ae1cc04392ae012fe6e482c0ae3636aabaa80f911a21f9dc42c0fc803012ecf8","matched":true,"value":"    c.onPage(page, \"response\", (response) => {"},{"id":"app-source-current#CASE-029-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-029-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: test timeout=60초이며 caseContext의 개별 준비는 일반 test fixture 예산 안에 있다. 현재 소스의 최초 실행 준비+본문 실측은 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-029-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-029-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":27,"end":27},"valueSha256":"63aca8af3cb32d0f9de67b00d897f74b494c10a9b4778f1e01c1df45595f611e","matched":true,"value":"export function inspectDiagnosticEvidence({ diagnostic, attachmentCount, revision, runId, attempt, caseId, title, project, status }) {"},{"id":"app-source-current#CASE-029-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-029-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-029","explanation":"정적: 첫 오류와 cleanup 오류를 나누고 teardown 시작 전에 case diagnostic 파일/첨부를 만든 뒤 단계별 갱신한다. 현 소스의 실제 첫 실패 첨부 및 redaction/실행 identity 증거는 미통합이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":642,"end":642},"valueSha256":"4bb10a77a72b51b9e7514e14875977f7ef6bb2386a4af7eda4ea2f699ade0b4b","matched":true,"value":"      const writeDiagnostic = await beginCaseDiagnostic(testInfo, diagnosticSnapshot());"},{"id":"app-source-current#CASE-030-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-030-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-030-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-030-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-030-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-030-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-030-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-030-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","artifactSha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f","lines":{"start":189,"end":189},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-030-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","artifactSha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f","lines":{"start":93,"end":93},"valueSha256":"8db0e6dc933b8a2a37908de1f756c15cdf6c0d6a7ac81e64057b87135791cc5d","matched":true,"value":"        await expect(record).toBeVisible();"},{"id":"app-source-current#CASE-030-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","artifactSha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f","lines":{"start":113,"end":113},"valueSha256":"66e465a3160e5b881aa0c71a8d57dc47da8481ab884717ebb4f59e3db9cf53a5","matched":true,"value":"        await expect(setCheckbox.first()).toHaveAttribute(\"aria-checked\", \"true\");"},{"id":"app-source-current#CASE-030-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","artifactSha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f","lines":{"start":123,"end":123},"valueSha256":"1a4c85fbbae870439ad4d9ebff8e56bfa744c16aee22b3b25094b19dba99fddf","matched":true,"value":"        const persisted = await c.waitForSessionByTitle(sessionTitle);"},{"id":"app-source-current#CASE-030-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","artifactSha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f","lines":{"start":163,"end":163},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-030-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-62","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/case.json","artifactSha256":"398cebe223e42e3860d82a487dfe096dfab1d3b53ec7b1756a36b55da04bec3d","lines":{"start":28,"end":28},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-030-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","artifactSha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f","lines":{"start":189,"end":189},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-030-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-030-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-030-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"effective_load 60 응답을 20으로 바꾸는 동일 수치 reader는 보조 계산의 오답 관측에 대응한다. 실제 DB 계산 트리거를 바꾼 실험은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-61","path":"error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs","artifactSha256":"e34c1233d5ef77e01a9d36cbcc619fa2fdc73e3a74ab50343ecf929264ac730f","lines":{"start":163,"end":163},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-030-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"effective_load 60 응답을 20으로 바꾸는 동일 수치 reader는 보조 계산의 오답 관측에 대응한다. 실제 DB 계산 트리거를 바꾼 실험은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-030-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-030-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-030-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-030-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-030-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-030-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-030-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-030-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-030-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-030-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-030-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-030-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":8,"end":8},"valueSha256":"76eb17978ecedbfb06eba3b91f913fa840021a64cdbca409e65c401624f608d8","matched":true,"value":"    \"CASE-021\", \"CASE-022\", \"CASE-023\", \"CASE-024\", \"CASE-025\", \"CASE-026\", \"CASE-027\", \"CASE-028\", \"CASE-029\", \"CASE-030\","},{"id":"app-source-current#CASE-030-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-030-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-030-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-030-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-030-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-030-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-030-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-030","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-031-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-031-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-031-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-031-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-031-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-031-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-031-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-031-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","artifactSha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695","lines":{"start":177,"end":177},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-031-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","artifactSha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695","lines":{"start":69,"end":69},"valueSha256":"a664c7acca439d09663563f651e7b8b8be27c7d3cc911175f5060291b6d18d72","matched":true,"value":"        await expect(multiplier.locator('[data-lg-option-value=\"1\"]')).toHaveAttribute(\"aria-pressed\", \"true\");"},{"id":"app-source-current#CASE-031-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","artifactSha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695","lines":{"start":73,"end":73},"valueSha256":"d3ca20df45448a0b70297b27a4317cd01cdd9acc23c1986451012dcf5271c697","matched":true,"value":"        await expect(editSheet).toBeVisible();"},{"id":"app-source-current#CASE-031-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","artifactSha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695","lines":{"start":129,"end":129},"valueSha256":"2ab538152065c81818a52166ec1898535237ffa96d7b92e472eb4d078a53c6cc","matched":true,"value":"        expect(persisted.status).toBe(\"completed\");"},{"id":"app-source-current#CASE-031-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","artifactSha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695","lines":{"start":147,"end":147},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-031-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-69","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/case.json","artifactSha256":"1b81494102e55172b51993c7fff3430e7de42926eea53e488122bff104d7e03c","lines":{"start":29,"end":29},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-031-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","artifactSha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695","lines":{"start":177,"end":177},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-031-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-031-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-031-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"effective_load 40 응답을 20으로 바꿔 배수 무시의 오답을 같은 reader가 구별한다. 제품 배수 계산 코드를 결함 버전으로 바꾸지는 않는다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-68","path":"error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs","artifactSha256":"15d5564ec6775a690a26f16b423f44f42d070f1203faac184643a981a7928695","lines":{"start":147,"end":147},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-031-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"effective_load 40 응답을 20으로 바꿔 배수 무시의 오답을 같은 reader가 구별한다. 제품 배수 계산 코드를 결함 버전으로 바꾸지는 않는다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-031-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-031-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-031-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-031-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-031-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-031-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-031-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-031-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-031-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-031-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-031-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-031-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-031-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-031-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-031-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-031-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-031-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-031-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-031-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-031","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-032-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-032-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-032-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-032-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-032-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-032-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-032-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-032-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","artifactSha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35","lines":{"start":248,"end":248},"valueSha256":"6891341754f77b400d3fc240bb7950cfac80374a431fabf67677ab44b0dd665c","matched":true,"value":"        await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-032-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","artifactSha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35","lines":{"start":69,"end":69},"valueSha256":"5892da74ff48d24ad39ded0cb1349238476328217eb0f25a273cf9a901ee44a8","matched":true,"value":"      if (holdDeleteResponse) await deleteResponseGate;"},{"id":"app-source-current#CASE-032-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","artifactSha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35","lines":{"start":169,"end":169},"valueSha256":"62d61224c2d05a8ddb59c38366adb64553b77302e1868288a643ad640b6e1cf8","matched":true,"value":"          await expect(finish).toBeHidden({ timeout: 10_000 });"},{"id":"app-source-current#CASE-032-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","artifactSha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35","lines":{"start":179,"end":179},"valueSha256":"ee74d4a93f82ee45a9d1ab4d3d7c0614159d90e2919b3a577725a5e013095216","matched":true,"value":"          await expect.poll(() => rpc.delete, { message: \"the queued delete request leaves the device once\", timeout: 10_000 }).toBe(1);"},{"id":"app-source-current#CASE-032-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","artifactSha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35","lines":{"start":214,"end":214},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-032-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-71","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/case.json","artifactSha256":"79e6465eff4a129585caa1c2cb355585f13e2af0e613c27fcd43617d146f3dc6","lines":{"start":27,"end":27},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-032-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","artifactSha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35","lines":{"start":248,"end":248},"valueSha256":"6891341754f77b400d3fc240bb7950cfac80374a431fabf67677ab44b0dd665c","matched":true,"value":"        await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-032-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-032-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-032-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"삭제된 세트 ID를 HTTP 조회에 다시 넣어 잔존 자식 검사의 민감도를 확인한다. 즉시 닫힘/정확히 한 번 삭제/DB cascade 자체를 결함으로 만든 검사는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-70","path":"error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs","artifactSha256":"fe66bea6d378654342ff1f9c8a83d7c961b37628decc0c12546b6f08b4f04c35","lines":{"start":214,"end":214},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-032-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"삭제된 세트 ID를 HTTP 조회에 다시 넣어 잔존 자식 검사의 민감도를 확인한다. 즉시 닫힘/정확히 한 번 삭제/DB cascade 자체를 결함으로 만든 검사는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-032-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-032-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-032-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-032-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-032-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-032-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-032-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-032-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-032-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-032-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-032-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-032-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-032-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-032-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-032-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-032-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-032-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-032-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-032-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-032","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-033-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-033-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-033-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-033-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-033-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-033-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-033-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-033-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","artifactSha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5","lines":{"start":269,"end":269},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-033-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","artifactSha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5","lines":{"start":93,"end":93},"valueSha256":"f4e99eace03b16c28ff2f501667afb7b0ed435602ae1914e96d58430be306155","matched":true,"value":"      await expect.poll(async () => ("},{"id":"app-source-current#CASE-033-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","artifactSha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5","lines":{"start":106,"end":106},"valueSha256":"a5c20d2120f30d9fd3aa8343f3e135b09514773c9ec41a28f2e2665da8506ab4","matched":true,"value":"      await expect.poll(async () => {"},{"id":"app-source-current#CASE-033-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","artifactSha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5","lines":{"start":192,"end":192},"valueSha256":"60c6b875dd52e69a8ab6d055b00e7a285224da943b3c301cc52e2367d03e24e7","matched":true,"value":"        await expect(editSheet.locator('[data-lg-action=\"workout.set.remove\"]')).toHaveCount(3);"},{"id":"app-source-current#CASE-033-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","artifactSha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5","lines":{"start":239,"end":239},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-033-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-73","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/case.json","artifactSha256":"b84d960d7980b6232ad980ea0b37894baa06d57c6555a95d6430909048714c1b","lines":{"start":30,"end":30},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-033-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","artifactSha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5","lines":{"start":269,"end":269},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-033-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-033-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-033-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"삭제 전 세 번째 세트를 실제 HTTP exercise_set 조회에 다시 추가한다. 잔존 세트 판정에 관련되지만 제품 삭제 로직과 일일 집계 구현의 결함 주입은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-72","path":"error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs","artifactSha256":"96a4725e22a5552ca5cb34691eb80e634d627a8f1ecf91f90106c8fd64c873e5","lines":{"start":239,"end":239},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-033-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"삭제 전 세 번째 세트를 실제 HTTP exercise_set 조회에 다시 추가한다. 잔존 세트 판정에 관련되지만 제품 삭제 로직과 일일 집계 구현의 결함 주입은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-033-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-033-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-033-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-033-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-033-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-033-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-033-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-033-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-033-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-033-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-033-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-033-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-033-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-033-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-033-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-033-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-033-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-033-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-033-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-033","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-034-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-034-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-034-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-034-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-034-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-034-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-034-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-034-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","artifactSha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540","lines":{"start":244,"end":244},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-034-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","artifactSha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540","lines":{"start":133,"end":133},"valueSha256":"96e8558814cafffa7c28750786ba6375012b469c68b3796e9c5732bc351bf115","matched":true,"value":"        await expect.poll(async () => ("},{"id":"app-source-current#CASE-034-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","artifactSha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540","lines":{"start":179,"end":179},"valueSha256":"81758e6c7b35cbf111a9aabcd749e9ebbf79d69e078fab63d7f4d41652efd314","matched":true,"value":"        await expect(setCheckbox).toHaveCount(2);"},{"id":"app-source-current#CASE-034-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","artifactSha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540","lines":{"start":182,"end":182},"valueSha256":"66e465a3160e5b881aa0c71a8d57dc47da8481ab884717ebb4f59e3db9cf53a5","matched":true,"value":"        await expect(setCheckbox.first()).toHaveAttribute(\"aria-checked\", \"true\");"},{"id":"app-source-current#CASE-034-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","artifactSha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540","lines":{"start":206,"end":206},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-034-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-75","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/case.json","artifactSha256":"128b24297a34aed2d8f5db8f623ff71364cad29161bc190de8c96aea4cf0dfec","lines":{"start":29,"end":29},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-034-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","artifactSha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540","lines":{"start":244,"end":244},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-034-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-034-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-034-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"완료 행의 HTTP status를 planned로 되돌리는 주입은 상태 전이 단언과 직접 대응한다. 동일 행 유지/중복 금지 제약을 실제로 해제한 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-74","path":"error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs","artifactSha256":"98fc1dcab2bc29a6439eaabda53bc57faee080f406334b71880b66c5bcda1540","lines":{"start":206,"end":206},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-034-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"완료 행의 HTTP status를 planned로 되돌리는 주입은 상태 전이 단언과 직접 대응한다. 동일 행 유지/중복 금지 제약을 실제로 해제한 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-034-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-034-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-034-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-034-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-034-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-034-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-034-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-034-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-034-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-034-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-034-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-034-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-034-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-034-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-034-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-034-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-034-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-034-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-034-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-034","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-035-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-035-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-035-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-035-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-035-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-035-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-035-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-035-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","artifactSha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845","lines":{"start":250,"end":250},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-035-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","artifactSha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845","lines":{"start":75,"end":75},"valueSha256":"5824746a52581777a43ea7140da47e10563f80facb6cd1cef0c0a895ecf11d9c","matched":true,"value":"        expect(invite.data?.[0]?.id, \"CASE-035: the member invite must exist\").toBeTruthy();"},{"id":"app-source-current#CASE-035-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","artifactSha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845","lines":{"start":162,"end":162},"valueSha256":"9dd8b42cd7cbaf6e13210e37fc7ee162e0a5dfdffd0c2987e4474106332dc496","matched":true,"value":"        await expect(memberPage.locator('[data-lg-view=\"dashboard.home\"]')).toBeVisible();"},{"id":"app-source-current#CASE-035-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","artifactSha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845","lines":{"start":170,"end":170},"valueSha256":"66b72e2829b0b281458b23bbcd44107471b1c6d0e35674a55c94daff798df643","matched":true,"value":"        await expect(startStep).toBeVisible();"},{"id":"app-source-current#CASE-035-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","artifactSha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845","lines":{"start":206,"end":206},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-035-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-77","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/case.json","artifactSha256":"44a9fc8c7b1017dfcebaf838d624a11a0fb46e618f2491a9b1713bf1d0943b49","lines":{"start":29,"end":29},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-035-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","artifactSha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845","lines":{"start":250,"end":250},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-035-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-035-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-035-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"멤버 session 응답의 group_id를 그룹 ID로 바꾸는 주입은 개인 기록 분류 오답을 대표한다. 그룹 권한 제약 자체를 약화하는 실험은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-76","path":"error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs","artifactSha256":"2eb4ab79a206226840388fac1d64cee8072bc4b645aa1df274d95d020b00f845","lines":{"start":206,"end":206},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-035-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"멤버 session 응답의 group_id를 그룹 ID로 바꾸는 주입은 개인 기록 분류 오답을 대표한다. 그룹 권한 제약 자체를 약화하는 실험은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-035-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-035-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-035-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-035-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-035-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-035-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-035-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-035-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-035-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-035-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-035-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-035-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-035-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-035-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-035-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-035-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-035-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-035-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-035-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-035","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-036-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-036-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-036-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-036-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-036-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-036-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-036-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-036-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","artifactSha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c","lines":{"start":232,"end":232},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-036-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","artifactSha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c","lines":{"start":181,"end":181},"valueSha256":"884eca7d3fd72131bd446ba013f1d5e6938705ebb229059cf8f1bf5f4bc1b6be","matched":true,"value":"      await page.route(`**${SAVE_PATH}`, async (route) => {"},{"id":"app-source-current#CASE-036-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","artifactSha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c","lines":{"start":187,"end":187},"valueSha256":"53681b725e6ad2b780b4cdf26887addf79c1b1f64ac9c7381592a6307128206d","matched":true,"value":"        const response = await route.fetch({"},{"id":"app-source-current#CASE-036-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","artifactSha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c","lines":{"start":191,"end":191},"valueSha256":"7b6c096c920c8f84c5b0c3bf9e10e3e8960a0c8e6bb47a187978c7478986f2e9","matched":true,"value":"        expect(response.status()).toBe(400);"},{"id":"app-source-current#CASE-036-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","artifactSha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c","lines":{"start":138,"end":138},"valueSha256":"7c6dd3cdbe6212077338094ee135caadb2c21e876268851e336950c51c0918fa","matched":true,"value":"            await c.verifyControl({"},{"id":"app-source-current#CASE-036-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-79","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/case.json","artifactSha256":"8690fac2a34e932151f54779adc6bd2a900ad5d6cb42c5ce57ee420f982d8982","lines":{"start":29,"end":29},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-036-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","artifactSha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c","lines":{"start":232,"end":232},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-036-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-036-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-036-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정확 400/LG426 응답을 P0001로 바꾸는 주입은 퇴역 API 오류 코드 계약의 대표 오답에 직접 대응한다. DB 쓰기 방어를 제거하지 않는다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-78","path":"error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs","artifactSha256":"015133c00d32c08146ea689e53b534692a4a91e233b6275972dcb916f9fee70c","lines":{"start":138,"end":138},"valueSha256":"7c6dd3cdbe6212077338094ee135caadb2c21e876268851e336950c51c0918fa","matched":true,"value":"            await c.verifyControl({"},{"id":"app-source-current#CASE-036-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정확 400/LG426 응답을 P0001로 바꾸는 주입은 퇴역 API 오류 코드 계약의 대표 오답에 직접 대응한다. DB 쓰기 방어를 제거하지 않는다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-036-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-036-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-036-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-036-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-036-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-036-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-036-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-036-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-036-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-036-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-036-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-036-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-036-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-036-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-036-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-036-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-036-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-036-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-036-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-036","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-037-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-037-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-037-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-037-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-037-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-037-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-037-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-037-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","artifactSha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc","lines":{"start":221,"end":221},"valueSha256":"6891341754f77b400d3fc240bb7950cfac80374a431fabf67677ab44b0dd665c","matched":true,"value":"        await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-037-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","artifactSha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc","lines":{"start":56,"end":56},"valueSha256":"e43a2cd6238e98f51bd8df331e86fb3ea0ebc987c9b1be888c2e0a56a8a45644","matched":true,"value":"    await page.route(`**${CATALOG_RPC_PATH}`, async (route) => {"},{"id":"app-source-current#CASE-037-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","artifactSha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc","lines":{"start":119,"end":119},"valueSha256":"d2b5bb2e25fe797c780fe791ec9a2f6f80aa99198739b584aebf46d6f1cc0f43","matched":true,"value":"          expect(holdCatalogResponse, \"the catalog response is still held while the board is inspected\").toBe(true);"},{"id":"app-source-current#CASE-037-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","artifactSha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc","lines":{"start":177,"end":177},"valueSha256":"3d068dd5faccd2c0b07f681f556f2717fbf99d1593680b73403d810cb83f05e0","matched":true,"value":"          await expect.poll(() => catalog.requests, { message: \"the app requested the catalog at least once\", timeout: 10_000 }).toBeGreaterThan(0);"},{"id":"app-source-current#CASE-037-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","artifactSha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc","lines":{"start":121,"end":121},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-037-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-81","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/case.json","artifactSha256":"d7c5c5ea145d5624f2b0e3ced88a6a43742650095e962171b71c01a6cc3c99f1","lines":{"start":28,"end":28},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-037-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","artifactSha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc","lines":{"start":221,"end":221},"valueSha256":"6891341754f77b400d3fc240bb7950cfac80374a431fabf67677ab44b0dd665c","matched":true,"value":"        await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-037-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-037-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-037-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"실제 이름 text node를 UUID로 바꾸고 동일 readBoardNames 결과를 비교하므로 표시 목적에 맞는 대표 결함이다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-80","path":"error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs","artifactSha256":"281130bbd554926bff63413ac2e402ae2b8519fb584ad9e9ef2e127aec42debc","lines":{"start":121,"end":121},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-037-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"실제 이름 text node를 UUID로 바꾸고 동일 readBoardNames 결과를 비교하므로 표시 목적에 맞는 대표 결함이다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-037-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-037-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-037-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-037-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-037-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-037-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-037-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-037-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-037-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-037-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-037-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-037-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-037-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-037-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-037-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-037-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-037-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-037-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-037-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-037","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-038-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-038-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-038-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-038-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-038-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-038-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-038-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-038-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-82","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs","artifactSha256":"f1676b51d3a286231ea36496d66068de7440f394a17705f517dd5caf6fcb8c2c","lines":{"start":319,"end":319},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-038-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-82","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs","artifactSha256":"f1676b51d3a286231ea36496d66068de7440f394a17705f517dd5caf6fcb8c2c","lines":{"start":150,"end":150},"valueSha256":"0f4b3463d3fe411cade6b50338e556835e0bf670e19d8a9fa4fc181e68e3fdde","matched":true,"value":"        await expect.poll(() => counts.changes, { message: \"the app pulls one change page after creating a custom exercise\", timeout: 10_000 }).toBe(1);"},{"id":"app-source-current#CASE-038-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-82","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs","artifactSha256":"f1676b51d3a286231ea36496d66068de7440f394a17705f517dd5caf6fcb8c2c","lines":{"start":151,"end":151},"valueSha256":"ea77e39f80c2032acc46e568c324f9cd674f2451254512db6c9134c01f44182d","matched":true,"value":"        await c.waitForObservedRequests(page);"},{"id":"app-source-current#CASE-038-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-82","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs","artifactSha256":"f1676b51d3a286231ea36496d66068de7440f394a17705f517dd5caf6fcb8c2c","lines":{"start":283,"end":283},"valueSha256":"ea77e39f80c2032acc46e568c324f9cd674f2451254512db6c9134c01f44182d","matched":true,"value":"        await c.waitForObservedRequests(page);"},{"id":"app-source-current#CASE-038-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-82","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs","artifactSha256":"f1676b51d3a286231ea36496d66068de7440f394a17705f517dd5caf6fcb8c2c","lines":{"start":273,"end":273},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-038-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-83","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/case.json","artifactSha256":"93505a714a203a69f0f79dbc1def7ef8ff198cf8a825532f8abb15167903acef","lines":{"start":27,"end":27},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-038-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-82","path":"error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs","artifactSha256":"f1676b51d3a286231ea36496d66068de7440f394a17705f517dd5caf6fcb8c2c","lines":{"start":319,"end":319},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-038-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-038-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-038-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-038-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-038-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-038-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-038-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-038-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-038-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-038-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-038-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-038-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-038-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-038-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-038-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-038-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-038-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-038-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-038-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-038-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-038-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-038","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-039-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"별도 정오/자정 회피용 browser clock 보정은 제거했다. 실제 시작시각·businessDate·legacy SHA/tag를 기록하고 connectivity probe 사이의 목적상 backoff 진행만 남겼다. 다만 manifest/주석은 legacy v0.17.0, 기본 LEGACY_TAG는 v0.17.1이라 검증 버전 서술 정합성 보완이 필요하다. 새 실행 재현성도 미확인이다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":19,"end":19},"valueSha256":"fa7fecbca07f7ce36ebbdeb8ad4fa0f19cf12eb8ece9ed8c2c9b166ade66b0b0","matched":true,"value":"const LEGACY_TAG = process.env.BARBELIC_LEGACY_TAG || \"v0.17.1\";"},{"id":"app-source-current#CASE-039-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"별도 정오/자정 회피용 browser clock 보정은 제거했다. 실제 시작시각·businessDate·legacy SHA/tag를 기록하고 connectivity probe 사이의 목적상 backoff 진행만 남겼다. 다만 manifest/주석은 legacy v0.17.0, 기본 LEGACY_TAG는 v0.17.1이라 검증 버전 서술 정합성 보완이 필요하다. 새 실행 재현성도 미확인이다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":58,"end":58},"valueSha256":"a04c0f319226cfdd3b3abec5745fddb6057e9baae7b30113ddbf48ccefe9b1fa","matched":true,"value":"    const journeyStartedAt = Date.now();"},{"id":"app-source-current#CASE-039-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"별도 정오/자정 회피용 browser clock 보정은 제거했다. 실제 시작시각·businessDate·legacy SHA/tag를 기록하고 connectivity probe 사이의 목적상 backoff 진행만 남겼다. 다만 manifest/주석은 legacy v0.17.0, 기본 LEGACY_TAG는 v0.17.1이라 검증 버전 서술 정합성 보완이 필요하다. 새 실행 재현성도 미확인이다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":72,"end":72},"valueSha256":"8691c979e40669348278af42347f2435bf6079a0879e38668432262fd706a88d","matched":true,"value":"    note(\"running-business-clock\", { businessDate: c.sessionDate, journeyStartedAt });"},{"id":"app-source-current#CASE-039-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"별도 정오/자정 회피용 browser clock 보정은 제거했다. 실제 시작시각·businessDate·legacy SHA/tag를 기록하고 connectivity probe 사이의 목적상 backoff 진행만 남겼다. 다만 manifest/주석은 legacy v0.17.0, 기본 LEGACY_TAG는 v0.17.1이라 검증 버전 서술 정합성 보완이 필요하다. 새 실행 재현성도 미확인이다.","artifact":"source-86","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/case.json","artifactSha256":"1f3418c16352538120ac2b84413fc2d04879737975a093e389725f48fd5f397c","lines":{"start":14,"end":14},"valueSha256":"8b791338ee2f9bb78c1582d9705cbe137a00bf5215197d63122bfcadc1aa44a3","matched":true,"value":"    \"open the app in tab A served from the legacy release bundle (v0.17.1, a previously deployed Production bundle) on the same origin as the new build, start an empty live workout, record one catalog exercise with one 60kg x 5 set, and finish so the record is saved online (revision 1)\","},{"id":"app-source-current#CASE-039-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-039-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-039-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-039-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":417,"end":417},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-039-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":249,"end":249},"valueSha256":"cd1684a782bb05082ee9565e9a9796919814c0b152436aab35f4f114dacb693a","matched":true,"value":"        await expect.poll(() => attempts.A, { message: \"the legacy tab's first send met the declared 503\", timeout: 10_000 }).toBe(1);"},{"id":"app-source-current#CASE-039-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":307,"end":307},"valueSha256":"e44bef32bf11b5ccf534decb7daeb0d3358594a49401df356449514f00472ce2","matched":true,"value":"        await pageB.waitForTimeout(3_000);"},{"id":"app-source-current#CASE-039-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":335,"end":335},"valueSha256":"1a8893ea793864c3699588a6197637f5d2ee702664dd8789d6fd8a98d09e847a","matched":true,"value":"        await expect.poll(() => attempts.A, { message: \"the legacy tab re-sends the identical request and meets the declared 503 again\", timeout: 10_000 }).toBe(2);"},{"id":"app-source-current#CASE-039-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":315,"end":315},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-039-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"reload 후 80kg 상세 단언 누락을 보완했고 completion 앞에서 반드시 실행한다. 현재 후보에서 필수 checkpoint와 실제 expect 전체 완료·예상 밖 오류 부재 증거는 새 실행 대기다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":406,"end":406},"valueSha256":"e909c6b2a3d43a95d6cd1f87322191f4c16af9b13582454a26e6b76a42ab1d3c","matched":true,"value":"        const reloadedDetail = page.locator('[data-lg-view=\"dashboard.session.detail\"]');"},{"id":"app-source-current#CASE-039-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"reload 후 80kg 상세 단언 누락을 보완했고 completion 앞에서 반드시 실행한다. 현재 후보에서 필수 checkpoint와 실제 expect 전체 완료·예상 밖 오류 부재 증거는 새 실행 대기다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":417,"end":417},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-039-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"소유 IDB 행의 claim.fence를 실제 바꾸는 주입은 unknown 메타 보존에 관련된다. 새 writer가 실제로 메타를 생산하는 전체 동작은 이 CASE가 모의로 대체했다고 명시한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-85","path":"error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs","artifactSha256":"8f5257ae35aa7371707f000342b4491f61d54a384b401ca6db6513631ad6ef91","lines":{"start":315,"end":315},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-039-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"소유 IDB 행의 claim.fence를 실제 바꾸는 주입은 unknown 메타 보존에 관련된다. 새 writer가 실제로 메타를 생산하는 전체 동작은 이 CASE가 모의로 대체했다고 명시한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-039-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-039-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-039-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-039-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-039-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-039-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-039-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-039-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-039-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-039-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-039-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-039-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-039-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-039-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-039-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-039-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-039-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-039-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-039-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-039","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-040-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-040-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-040-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-040-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-040-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-040-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-040-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-040-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":451,"end":451},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-040-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":303,"end":303},"valueSha256":"bf6de9d7d10ea0dab5054dedc0ddbd71a1618444b26b012f4340b892f5518fd2","matched":true,"value":"        expect(attempts.A, \"the legacy tab's edit is in flight (held)\").toBe(1);"},{"id":"app-source-current#CASE-040-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":345,"end":345},"valueSha256":"0c96a3ac59036d51a89cbf1792eaeb91e7fd9677f4eefe401c297b1762829d1c","matched":true,"value":"        await pageB.waitForTimeout(1_000);"},{"id":"app-source-current#CASE-040-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":357,"end":357},"valueSha256":"53ebf8a3e542423435a4f6b616c12e1be248b77feda5f64e76cad8f3eae0a66a","matched":true,"value":"        await expect.poll(() => statuses.A, { message: \"the legacy tab's held send is answered\", timeout: 10_000 }).toEqual([200]);"},{"id":"app-source-current#CASE-040-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":374,"end":374},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-040-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"두 탭의 reload 후 90kg 상세 단언 누락을 보완했고 탭 종료/completion 앞에서 반드시 실행한다. 현재 후보의 실제 필수 단언 전체 완료는 새 실행 대기다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":425,"end":425},"valueSha256":"c17e532d326f7804694f06a735caaa8eca539e78aa576e656170bdeeb30c2670","matched":true,"value":"        const newTabDetail = pageB.locator('[data-lg-view=\"dashboard.session.detail\"]');"},{"id":"app-source-current#CASE-040-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"두 탭의 reload 후 90kg 상세 단언 누락을 보완했고 탭 종료/completion 앞에서 반드시 실행한다. 현재 후보의 실제 필수 단언 전체 완료는 새 실행 대기다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":438,"end":438},"valueSha256":"7501b9f35296948f5028ce1d647326120b3146c69009355147f4c938864e170b","matched":true,"value":"        const legacyTabDetail = page.locator('[data-lg-view=\"dashboard.session.detail\"]');"},{"id":"app-source-current#CASE-040-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"두 탭의 reload 후 90kg 상세 단언 누락을 보완했고 탭 종료/completion 앞에서 반드시 실행한다. 현재 후보의 실제 필수 단언 전체 완료는 새 실행 대기다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":451,"end":451},"valueSha256":"bced7b7155cdd301451e157b8f18e7a584ee10cdbd36896a3b9b500f390982f7","matched":true,"value":"      await c.completeJourney(page, monitor, {"},{"id":"app-source-current#CASE-040-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"legacy ACK 뒤 실제 successor IDB 행을 삭제하는 주입은 요구한 후속 행 생존 결함에 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-87","path":"error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs","artifactSha256":"a5aa6d33b1bc71674bbc5c17a5c5becd9f139555b1d3632573d5914731fba350","lines":{"start":374,"end":374},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-040-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"legacy ACK 뒤 실제 successor IDB 행을 삭제하는 주입은 요구한 후속 행 생존 결함에 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-040-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-040-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-040-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-040-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-040-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-040-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-040-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-040-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-040-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-040-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-040-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-040-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":9,"end":9},"valueSha256":"e05fd450727806ed042d90ec8fec4a3a5f17f50511bdb540bb5d679bb3dc949e","matched":true,"value":"    \"CASE-031\", \"CASE-032\", \"CASE-033\", \"CASE-034\", \"CASE-035\", \"CASE-036\", \"CASE-037\", \"CASE-038\", \"CASE-039\", \"CASE-040\","},{"id":"app-source-current#CASE-040-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-040-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-040-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-040-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-040-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-040-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-040-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-040","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-041-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-041-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-041-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-041-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-041-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-041-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-041-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-041-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-88","path":"error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs","artifactSha256":"62f0509667ebb0f73708f1e80cb650c7387765100a54aa83738a9fd92df987f7","lines":{"start":119,"end":119},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-041-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-88","path":"error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs","artifactSha256":"62f0509667ebb0f73708f1e80cb650c7387765100a54aa83738a9fd92df987f7","lines":{"start":40,"end":40},"valueSha256":"b7064b8066acaa8160b41f6f9a5fa3b64e43aa218910bb7c75c86ccf8efbe33c","matched":true,"value":"      const actual = await route.fetch();"},{"id":"app-source-current#CASE-041-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-88","path":"error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs","artifactSha256":"62f0509667ebb0f73708f1e80cb650c7387765100a54aa83738a9fd92df987f7","lines":{"start":44,"end":44},"valueSha256":"028609aeac56b5809138d5361abb7b6c1f5ac2de8ec1bf1c850b8d2bd51bdf97","matched":true,"value":"      expect(committed).toHaveLength(1);"},{"id":"app-source-current#CASE-041-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-88","path":"error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs","artifactSha256":"62f0509667ebb0f73708f1e80cb650c7387765100a54aa83738a9fd92df987f7","lines":{"start":45,"end":45},"valueSha256":"dba42f849f9a660340ac767cab730050f99bf0ceede8d079b6e5718b86c3023b","matched":true,"value":"      recovery.arm();"},{"id":"app-source-current#CASE-041-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-88","path":"error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs","artifactSha256":"62f0509667ebb0f73708f1e80cb650c7387765100a54aa83738a9fd92df987f7","lines":{"start":71,"end":71},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-041-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-89","path":"error-cases/CASE-041-committed-write-lost-ack/case.json","artifactSha256":"c8bc1f21d72011ad3758476bffd8f5f6402eff634e121b73d53e8e0b0755e1fc","lines":{"start":61,"end":61},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-041-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-88","path":"error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs","artifactSha256":"62f0509667ebb0f73708f1e80cb650c7387765100a54aa83738a9fd92df987f7","lines":{"start":119,"end":119},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-041-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-041-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-041-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-041-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-041-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-041-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-041-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-041-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-041-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-041-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-041-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-041-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-041-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-041-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-041-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-041-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-041-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-041-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-041-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-041-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-041-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-041","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-042-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-042-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-042-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-042-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-042-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-042-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-042-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-042-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","artifactSha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255","lines":{"start":130,"end":130},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-042-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","artifactSha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255","lines":{"start":33,"end":33},"valueSha256":"99eedcc401a4b6318d6319b0befd5dc433c16e241076ffc650e50daee2aaa25c","matched":true,"value":"          await expect.poll(async () => (await pendingRows(page, c.userId))[0]?.state).toBe(\"sending\");"},{"id":"app-source-current#CASE-042-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","artifactSha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255","lines":{"start":46,"end":46},"valueSha256":"54a91bf124a2c12f76c1f02f7ad1c280ca14f529f77e5c6c7cb1a357c997b320","matched":true,"value":"        await page.close();"},{"id":"app-source-current#CASE-042-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","artifactSha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255","lines":{"start":53,"end":53},"valueSha256":"b9b3bfd2d069fc7769ce61ed981d3767955590927770edd5360e8ad3128973e8","matched":true,"value":"        // budget; use the deadline event, without rewriting sentAt or browser time."},{"id":"app-source-current#CASE-042-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","artifactSha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255","lines":{"start":104,"end":104},"valueSha256":"7c6dd3cdbe6212077338094ee135caadb2c21e876268851e336950c51c0918fa","matched":true,"value":"            await c.verifyControl({"},{"id":"app-source-current#CASE-042-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-91","path":"error-cases/CASE-042-pending-write-browser-restart/case.json","artifactSha256":"dce2fc3bef4450e35c6c70448c89bba4f606fb491d323c88509031e72d3af67b","lines":{"start":27,"end":27},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-042-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","artifactSha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255","lines":{"start":130,"end":130},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-042-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-042-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-042-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"실제 복구 pending의 request.title 변경은 페이지 종료 뒤 입력 불변 판정과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-90","path":"error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs","artifactSha256":"40fb3e907e36242964efbcccbc585be6fff052cfe5c1cc082b497d4d13d8a255","lines":{"start":104,"end":104},"valueSha256":"7c6dd3cdbe6212077338094ee135caadb2c21e876268851e336950c51c0918fa","matched":true,"value":"            await c.verifyControl({"},{"id":"app-source-current#CASE-042-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"실제 복구 pending의 request.title 변경은 페이지 종료 뒤 입력 불변 판정과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-042-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-042-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-042-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-042-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-042-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-042-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-042-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-042-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-042-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-042-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-042-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-042-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-042-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-042-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-042-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-042-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-042-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-042-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-042-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-042","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-043-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-043-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-043-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-043-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-043-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-043-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-043-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-043-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","artifactSha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175","lines":{"start":121,"end":121},"valueSha256":"5962b55a6687b0567be22158b913f19d83ed490250dead01a10cac6c15c34b11","matched":true,"value":"      await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-043-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","artifactSha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175","lines":{"start":34,"end":34},"valueSha256":"f30bc1935a34548fecb70552b3ec5679f1a96a64ea7d54a021a21979cb35b48f","matched":true,"value":"      expect(response.status()).toBe(401);"},{"id":"app-source-current#CASE-043-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","artifactSha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175","lines":{"start":50,"end":50},"valueSha256":"32c49cb7d1bd78600c485e36c7ec8c7cdd71bd9ce43347e0792369cadaae7e87","matched":true,"value":"        await expect.poll(async () => (await pendingRows(page, c.userId))[0]?.state).toBe(\"held\");"},{"id":"app-source-current#CASE-043-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","artifactSha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175","lines":{"start":65,"end":65},"valueSha256":"d1f1df4e76c1c3ed39918983e3dba3dde66291d05908cf93a9d054a6ada3f4bf","matched":true,"value":"      expect(actor.userId).toBe(c.userId);"},{"id":"app-source-current#CASE-043-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","artifactSha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175","lines":{"start":93,"end":93},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-043-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-93","path":"error-cases/CASE-043-expired-jwt-held-recovery/case.json","artifactSha256":"f726071ff99d861c4e5c48ca4d02e5ca102d1a39b40fac766517dd4efb5d2462","lines":{"start":39,"end":39},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-043-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","artifactSha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175","lines":{"start":121,"end":121},"valueSha256":"5962b55a6687b0567be22158b913f19d83ed490250dead01a10cac6c15c34b11","matched":true,"value":"      await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-043-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-043-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-043-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"held IDB request.title 실제 변경은 동일 owner 재인증 과정의 입력 유실 결함에 대응한다. 토큰 인증 자체의 결함 주입은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-92","path":"error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs","artifactSha256":"c09d7e3c83aba021893613b40dfa3c265dc9d399b926a39c04442649e5c22175","lines":{"start":93,"end":93},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-043-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"held IDB request.title 실제 변경은 동일 owner 재인증 과정의 입력 유실 결함에 대응한다. 토큰 인증 자체의 결함 주입은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-043-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-043-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-043-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-043-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-043-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-043-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-043-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-043-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-043-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-043-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-043-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-043-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-043-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-043-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-043-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-043-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-043-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-043-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-043-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-043","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-044-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-044-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-044-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-044-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-044-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-044-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-044-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-044-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-94","path":"error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs","artifactSha256":"3d52d79d0a395edd1adc45de35cdc89ee3db96c5822b497ac399f1ec9be38149","lines":{"start":169,"end":169},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-044-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-94","path":"error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs","artifactSha256":"3d52d79d0a395edd1adc45de35cdc89ee3db96c5822b497ac399f1ec9be38149","lines":{"start":29,"end":29},"valueSha256":"f30bc1935a34548fecb70552b3ec5679f1a96a64ea7d54a021a21979cb35b48f","matched":true,"value":"      expect(response.status()).toBe(401);"},{"id":"app-source-current#CASE-044-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-94","path":"error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs","artifactSha256":"3d52d79d0a395edd1adc45de35cdc89ee3db96c5822b497ac399f1ec9be38149","lines":{"start":45,"end":45},"valueSha256":"e6c1d8920e83624c71e7566899177f92913e391186a51990c525889845351c52","matched":true,"value":"          await expect.poll(async () => (await pendingRows(page, c.userId))[0]?.state).toBe(\"held\");"},{"id":"app-source-current#CASE-044-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-94","path":"error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs","artifactSha256":"3d52d79d0a395edd1adc45de35cdc89ee3db96c5822b497ac399f1ec9be38149","lines":{"start":54,"end":54},"valueSha256":"fafeaf671345fdf74aa496cfceee94c1087db3f946f1f706efaae6ff5328aaba","matched":true,"value":"        expect(page.isClosed()).toBe(true);"},{"id":"app-source-current#CASE-044-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-94","path":"error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs","artifactSha256":"3d52d79d0a395edd1adc45de35cdc89ee3db96c5822b497ac399f1ec9be38149","lines":{"start":154,"end":154},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-044-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-95","path":"error-cases/CASE-044-pending-owner-switch-isolation/case.json","artifactSha256":"ed6d0a6a3df01852b88c3495bf98c261bda623b69d7869e2b83c28dd69f530fe","lines":{"start":39,"end":39},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-044-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-94","path":"error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs","artifactSha256":"3d52d79d0a395edd1adc45de35cdc89ee3db96c5822b497ac399f1ec9be38149","lines":{"start":169,"end":169},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-044-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-044-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-044-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-044-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-044-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-044-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-044-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-044-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-044-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-044-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-044-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-044-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-044-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-044-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-044-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-044-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-044-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-044-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-044-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-044-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-044-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-044","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-045-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-045-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-045-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-045-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-045-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-045-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-045-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-045-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","artifactSha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd","lines":{"start":216,"end":216},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-045-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","artifactSha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd","lines":{"start":72,"end":72},"valueSha256":"2e555f39bcae17a01b03a1c305458e7aa8ea4dc1c450cf496b898bd340b22ac3","matched":true,"value":"      expect(response.status()).toBeLessThan(400);"},{"id":"app-source-current#CASE-045-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","artifactSha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd","lines":{"start":75,"end":75},"valueSha256":"a2ac495abeed4a7e3853321c43c90f64fb7efef4804e9bcbbdb5d59371416a1d","matched":true,"value":"      await lateAck.promise;"},{"id":"app-source-current#CASE-045-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","artifactSha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd","lines":{"start":79,"end":79},"valueSha256":"9c4687951aced49465cc86bbce9f540cc6a8c125c661bd0024e3ee89f307f341","matched":true,"value":"      expect(Date.now() - writesA.at(-1).startedAt).toBeLessThan(DIRECT_WORKOUT_WRITE_TIMEOUT_MS);"},{"id":"app-source-current#CASE-045-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","artifactSha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd","lines":{"start":119,"end":119},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-045-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-97","path":"error-cases/CASE-045-concurrent-tab-latest-intent/case.json","artifactSha256":"ad64d1a0b97f7d7518ee3d7e723e415b2ad05c30d07f5f15b79bc8bc0c2993aa","lines":{"start":61,"end":61},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-045-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","artifactSha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd","lines":{"start":216,"end":216},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-045-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-045-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-045-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"DB 조회 load 80→70 응답 주입은 최신값 reader 민감도다. 실제 conflict 해소/late ACK 상태 reducer를 결함 구현으로 바꾸지 않으므로 전체 경합 회귀 탐지 증거는 제한적이다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-96","path":"error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs","artifactSha256":"0f7fd7a4d0b864a872357d1d7382d4c5996cd8843e8d4cfde6fbe3933a286cbd","lines":{"start":119,"end":119},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-045-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"DB 조회 load 80→70 응답 주입은 최신값 reader 민감도다. 실제 conflict 해소/late ACK 상태 reducer를 결함 구현으로 바꾸지 않으므로 전체 경합 회귀 탐지 증거는 제한적이다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-045-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-045-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-045-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-045-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-045-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-045-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-045-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-045-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-045-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-045-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-045-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-045-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-045-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-045-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-045-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-045-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-045-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-045-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-045-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-045","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-046-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-046-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-046-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-046-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-046-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-046-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-046-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-046-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":86,"end":86},"valueSha256":"30c5c50326732c7e23a8e2a60457413f42a6669cd818ccf5eaae7deaf7b3d982","matched":true,"value":"      // Common teardown closes the page and settles its stats before deleting the account."},{"id":"app-source-current#CASE-046-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":19,"end":19},"valueSha256":"243866a54c4ef2f3d3daab4867b52156d4734434448abde487f1948a39ff573c","matched":true,"value":"      if (requests.length === 1) {"},{"id":"app-source-current#CASE-046-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":33,"end":33},"valueSha256":"e9e14bd41ad30b55e4b8f9f8f96d58eac19d7f6e5d4c57c5741a7999d4cd7fb5","matched":true,"value":"        await expect.poll(async () => (await pendingRows(page, c.userId))[0]?.state).toBe(\"blocked\");"},{"id":"app-source-current#CASE-046-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":60,"end":60},"valueSha256":"6274bf9429235c7031f682145f08802c7f78dc7bb42687f1541b809021f60070","matched":true,"value":"        expect(requests).toHaveLength(1);"},{"id":"app-source-current#CASE-046-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":39,"end":39},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-046-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-99","path":"error-cases/CASE-046-blocked-write-user-recovery/case.json","artifactSha256":"77a283bc11bf4420eeb600d0d2cd9770ca7b76640a529fe565134cf883f208c1","lines":{"start":39,"end":39},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-046-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":86,"end":86},"valueSha256":"30c5c50326732c7e23a8e2a60457413f42a6669cd818ccf5eaae7deaf7b3d982","matched":true,"value":"      // Common teardown closes the page and settles its stats before deleting the account."},{"id":"app-source-current#CASE-046-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-046-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-046-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"실제 blocked IDB 요청의 제목을 비우는 주입은 격리 입력 보존 단언과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":39,"end":39},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-046-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"실제 blocked IDB 요청의 제목을 비우는 주입은 격리 입력 보존 단언과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-046-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-98","path":"error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs","artifactSha256":"4fff0afebf0daa0722938f17ebc7ded167e9b556388e7471e46810d3e975324d","lines":{"start":86,"end":86},"valueSha256":"30c5c50326732c7e23a8e2a60457413f42a6669cd818ccf5eaae7deaf7b3d982","matched":true,"value":"      // Common teardown closes the page and settles its stats before deleting the account."},{"id":"app-source-current#CASE-046-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-046-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-046-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-046-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-046-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-046-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-046-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-046-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-046-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-046-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-046-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-046-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-046-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-046-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-046-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-046-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-046-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-046-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-046","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-047-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-047-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-047-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-047-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-047-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-047-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-047-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-047-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","artifactSha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da","lines":{"start":113,"end":113},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-047-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","artifactSha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da","lines":{"start":29,"end":29},"valueSha256":"1c6551b6bb032e630d288d1ed81b56823da48e51fc2560211b13579e6a8e9175","matched":true,"value":"        expect(response.status()).toBeLessThan(400);"},{"id":"app-source-current#CASE-047-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","artifactSha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da","lines":{"start":49,"end":49},"valueSha256":"1a7187ae18d48ba5717903501244f480fc658ace9b455e87dae17a5e816bbe02","matched":true,"value":"          await expect.poll(() => oldRead).toBe(true);"},{"id":"app-source-current#CASE-047-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","artifactSha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da","lines":{"start":52,"end":52},"valueSha256":"9436401b7c6c88b4baa07314f02a96ebda086646caee6f85958e76822c56f161","matched":true,"value":"          await expect(view(page, \"dashboard.session.detail\")).toContainText(second.title);"},{"id":"app-source-current#CASE-047-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","artifactSha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da","lines":{"start":59,"end":59},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-047-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-101","path":"error-cases/CASE-047-read-model-late-response/case.json","artifactSha256":"3110ef8750c33be59e81e03c190611fa85cb60a228bb1e9cacb0b03e6b463296","lines":{"start":39,"end":39},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-047-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","artifactSha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da","lines":{"start":113,"end":113},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-047-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-047-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-047-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"실제 현재 DOM 제목을 이전 제목으로 바꾸는 주입은 늦은 응답으로 화면이 덮이는 목표 오답과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-100","path":"error-cases/CASE-047-read-model-late-response/regression.spec.mjs","artifactSha256":"67e4c1e5c8e841271f30e5b69d79b098c62c1bd61afdeb209aebe785ada0e8da","lines":{"start":59,"end":59},"valueSha256":"6f1a6b1eebe8cd897f7d9abb3809238e0d2adff1fb099b9abafb3b8e5d87ffaf","matched":true,"value":"          await c.verifyControl({"},{"id":"app-source-current#CASE-047-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"실제 현재 DOM 제목을 이전 제목으로 바꾸는 주입은 늦은 응답으로 화면이 덮이는 목표 오답과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-047-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-047-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-047-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-047-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-047-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-047-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-047-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-047-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-047-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-047-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-047-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-047-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-047-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-047-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-047-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-047-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-047-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-047-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-047-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-047","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-048-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-048-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-048-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-048-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-048-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-048-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-048-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-048-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","artifactSha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7","lines":{"start":180,"end":180},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-048-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","artifactSha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7","lines":{"start":54,"end":54},"valueSha256":"68487168154960525484d86d282c93c83ce3ed2d3f86cb847f3235ad2627ce9d","matched":true,"value":"          await c.beginExpectedOffline(context, \"offline-network-disconnected\");"},{"id":"app-source-current#CASE-048-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","artifactSha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7","lines":{"start":55,"end":55},"valueSha256":"4817932c339ae2ff7b8af35966288d1764211d2a0191a9c3bc12f029071dd9bb","matched":true,"value":"          expect(await page.evaluate(() => navigator.onLine)).toBe(false);"},{"id":"app-source-current#CASE-048-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","artifactSha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7","lines":{"start":101,"end":101},"valueSha256":"fff32cdf755ee87603d489c07813a3711cacb59a946a7539238977fc85429dea","matched":true,"value":"          expect(documents).toEqual([{ status: 200, fromServiceWorker: true }]);"},{"id":"app-source-current#CASE-048-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","artifactSha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7","lines":{"start":140,"end":140},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-048-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-103","path":"error-cases/CASE-048-https-sw-offline-pending-update/case.json","artifactSha256":"08fa5610038aaddf5df0aad8c2513d6cbd334d447fade095aa4c1e1e49311bd7","lines":{"start":28,"end":28},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-048-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","artifactSha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7","lines":{"start":180,"end":180},"valueSha256":"597de3d727768341f37a1a20504ff4d2e4fbd83bdb32450c4bb7e5526989e7a5","matched":true,"value":"        await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-048-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-048-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-048-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"실제 worker 교체 직후 ACK 전 pending 행 삭제는 저장소 보존 요구에 직접 대응한다. 서버 중복 방지 구현 결함은 별도다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-102","path":"error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs","artifactSha256":"0b597d7e5b9ab2b49579fbd1f7ceb6e97759e5cc43acf6ae440194f35d2e54f7","lines":{"start":140,"end":140},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-048-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"실제 worker 교체 직후 ACK 전 pending 행 삭제는 저장소 보존 요구에 직접 대응한다. 서버 중복 방지 구현 결함은 별도다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-048-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-048-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-048-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-048-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-048-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-048-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-048-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-048-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-048-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-048-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-048-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-048-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-048-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-048-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-048-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-048-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"기존 ERR_ABORTED 2건은 실제 발생했으나 이전 evidence로는 offline 시작 전/중/후를 구분할 수 없다. 현재 tracker에 시작/끝 시각과 요청 시작·실패 시각/phase를 추가했고 offlineDocuments 배열도 관찰 시점에 복사한다. 정리 전 진단과 함께 다음 실행에서 정확 요청/문서 경계를 확인해야 하며 abort 원인은 아직 미확정이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-048-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"기존 ERR_ABORTED 2건은 실제 발생했으나 이전 evidence로는 offline 시작 전/중/후를 구분할 수 없다. 현재 tracker에 시작/끝 시각과 요청 시작·실패 시각/phase를 추가했고 offlineDocuments 배열도 관찰 시점에 복사한다. 정리 전 진단과 함께 다음 실행에서 정확 요청/문서 경계를 확인해야 하며 abort 원인은 아직 미확정이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-048-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"기존 ERR_ABORTED 2건은 실제 발생했으나 이전 evidence로는 offline 시작 전/중/후를 구분할 수 없다. 현재 tracker에 시작/끝 시각과 요청 시작·실패 시각/phase를 추가했고 offlineDocuments 배열도 관찰 시점에 복사한다. 정리 전 진단과 함께 다음 실행에서 정확 요청/문서 경계를 확인해야 하며 abort 원인은 아직 미확정이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-048-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-048","explanation":"기존 ERR_ABORTED 2건은 실제 발생했으나 이전 evidence로는 offline 시작 전/중/후를 구분할 수 없다. 현재 tracker에 시작/끝 시각과 요청 시작·실패 시각/phase를 추가했고 offlineDocuments 배열도 관찰 시점에 복사한다. 정리 전 진단과 함께 다음 실행에서 정확 요청/문서 경계를 확인해야 하며 abort 원인은 아직 미확정이다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-049-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-049-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-049-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-049-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-049-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-049-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-049-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-049-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","artifactSha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27","lines":{"start":144,"end":144},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-049-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","artifactSha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27","lines":{"start":27,"end":27},"valueSha256":"da396403795a7f1e12d41e7ea15c08fb50d4303982f47203a738758116948963","matched":true,"value":"    expect(url.searchParams.get(\"provider\")).toBe(\"kakao\");"},{"id":"app-source-current#CASE-049-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","artifactSha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27","lines":{"start":28,"end":28},"valueSha256":"4ceba1ca8e5aba0281e74a3e6b1b0a3be7045dba28232002c501f0510a01786e","matched":true,"value":"    expect(url.searchParams.get(\"code_challenge_method\")).toBe(\"s256\");"},{"id":"app-source-current#CASE-049-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","artifactSha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27","lines":{"start":44,"end":44},"valueSha256":"67a74468364ec7df8bd12ecebcfb434984ceddfe4015d4ae1831a0dfaaffa056","matched":true,"value":"    expect(route.request().postDataJSON().code_verifier).toBeTruthy();"},{"id":"app-source-current#CASE-049-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","artifactSha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27","lines":{"start":109,"end":109},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-049-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-105","path":"error-cases/CASE-049-provider-callback-cancel-retry/case.json","artifactSha256":"c5b7d8b8bd205a44cc7f34af08913b7fcc04ea0d26184e869a1ac44d2e65e44f","lines":{"start":57,"end":57},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-049-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","artifactSha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27","lines":{"start":144,"end":144},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-049-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-049-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-049-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"실제 Auth HTTP identity 목록을 비우는 주입은 동일 신원 불변 관찰에 관련된다. Kakao 외부 인증이나 Auth identity 저장 구현의 결함을 넣은 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-104","path":"error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs","artifactSha256":"98f435a21a2d0d4be85de7b2e95eecc665131895c8ede1804b9be869b90aef27","lines":{"start":109,"end":109},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-049-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"실제 Auth HTTP identity 목록을 비우는 주입은 동일 신원 불변 관찰에 관련된다. Kakao 외부 인증이나 Auth identity 저장 구현의 결함을 넣은 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-049-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-049-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-049-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-049-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-049-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-049-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-049-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-049-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-049-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-049-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-049-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-049-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-049-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-049-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-049-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-049-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-049-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-049-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-049-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-049","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-050-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-050-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-050-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-050-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-050-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-050-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-050-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-050-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","artifactSha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272","lines":{"start":88,"end":88},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-050-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","artifactSha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272","lines":{"start":29,"end":29},"valueSha256":"6c78c7d9214bd0349db1b29254797a32db777dd848f28dfd6e8bfb5baf21ee39","matched":true,"value":"      await fault.started;"},{"id":"app-source-current#CASE-050-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","artifactSha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272","lines":{"start":30,"end":30},"valueSha256":"c86f4dc0710e3a3d20df9784b6754d5eeb2dd48454c21a57100188ec33141b30","matched":true,"value":"      await expect(save).toBeDisabled();"},{"id":"app-source-current#CASE-050-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","artifactSha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272","lines":{"start":37,"end":37},"valueSha256":"ff1a13bb6670cf1daef1374659d5444f0d5423f9adab24555383ceefaf10d166","matched":true,"value":"      fault.release();"},{"id":"app-source-current#CASE-050-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","artifactSha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272","lines":{"start":42,"end":42},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-050-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-107","path":"error-cases/CASE-050-profile-edit-failure-retry/case.json","artifactSha256":"d9c29d0b0ae30689a31df51206eb8e034e36a5c1491f613e48b040f7ff6abe61","lines":{"start":69,"end":69},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-050-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","artifactSha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272","lines":{"start":88,"end":88},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-050-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-050-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-050-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"실제 input.value를 비우는 주입은 저장 실패 후 draft 유실 요구에 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-106","path":"error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs","artifactSha256":"d87282e5a17d047c7f2652725c882766ce3a1bcb2867f203f90d450849d8f272","lines":{"start":42,"end":42},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-050-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"실제 input.value를 비우는 주입은 저장 실패 후 draft 유실 요구에 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-050-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-050-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-050-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-050-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-050-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-050-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-050-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-050-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-050-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-050-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-050-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-050-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":10,"end":10},"valueSha256":"0640f394640a095eb075a12a9efa715dae4a357f3afd5749178bb8217181dafa","matched":true,"value":"    \"CASE-041\", \"CASE-042\", \"CASE-043\", \"CASE-044\", \"CASE-045\", \"CASE-046\", \"CASE-047\", \"CASE-048\", \"CASE-049\", \"CASE-050\","},{"id":"app-source-current#CASE-050-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-050-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-050-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-050-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-050-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-050-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-050-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-050","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-051-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-051-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-051-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-051-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-051-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-051-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-051-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-051-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","artifactSha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c","lines":{"start":69,"end":69},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-051-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","artifactSha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c","lines":{"start":33,"end":33},"valueSha256":"382d320dc8cc2e143f1fdd9c216063e79b8fc2faa03be1be529c95a80a8f9a46","matched":true,"value":"      await expectErrorToast(page, \"계정 연결을 완료하지 못했어요.\");"},{"id":"app-source-current#CASE-051-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","artifactSha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c","lines":{"start":34,"end":34},"valueSha256":"fe7fe52dc32338d64bc8f3242676083b3dfc55baa1347613326f562ec2d3c74b","matched":true,"value":"      await expect.poll(() => new URL(page.url()).searchParams.has(\"auth_result\")).toBe(false);"},{"id":"app-source-current#CASE-051-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","artifactSha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c","lines":{"start":39,"end":39},"valueSha256":"f4232faa4d54d1330433f1db00172c4966df7866fcd70b5a45657e38e3b12ca6","matched":true,"value":"      expect(fresh.user.id).toBe(c.userId);"},{"id":"app-source-current#CASE-051-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","artifactSha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c","lines":{"start":52,"end":52},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-051-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-109","path":"error-cases/CASE-051-account-link-return-identity-preservation/case.json","artifactSha256":"d4dba7a636f2249086564e8ebf49e58987f7143d3804e7370d36892c960daf10","lines":{"start":52,"end":52},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-051-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","artifactSha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c","lines":{"start":69,"end":69},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-051-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-051-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-051-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"owner-scoped Auth admin 응답의 identities=[]는 신원 보존 reader 감도다. 외부 link나 실제 Auth 신원 삭제 구현을 고장낸 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-108","path":"error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs","artifactSha256":"31efae0c8fa2300c6147cf2095e0aca0e9f888a29f98e041c56944fe79b0d95c","lines":{"start":52,"end":52},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-051-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"owner-scoped Auth admin 응답의 identities=[]는 신원 보존 reader 감도다. 외부 link나 실제 Auth 신원 삭제 구현을 고장낸 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-051-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-051-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-051-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-051-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-051-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-051-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-051-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-051-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-051-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-051-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-051-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-051-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":11,"end":11},"valueSha256":"7980706e8d806a973ef97e7d3eddea3be768fa79350b5a02f368c70af8b4f384","matched":true,"value":"    \"CASE-051\", \"CASE-052\", \"CASE-053\", \"CASE-054\", \"CASE-055\", \"CASE-057\", \"CASE-058\""},{"id":"app-source-current#CASE-051-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-051-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-051-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-051-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-051-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-051-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-051-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-051","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-052-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-052-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-052-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-052-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-052-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-052-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-052-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-052-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","artifactSha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca","lines":{"start":102,"end":102},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-052-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","artifactSha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca","lines":{"start":28,"end":28},"valueSha256":"25541fe09a2a1ed6db7ab7c828e269e1736d579ec90c0e0c42e67ac1579ba9bd","matched":true,"value":"      await likeFault.started;"},{"id":"app-source-current#CASE-052-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","artifactSha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca","lines":{"start":31,"end":31},"valueSha256":"a7415d4957849451baf59f3993ab263b43a4fd28f306a63a9d5ea3c1b5e860ad","matched":true,"value":"      likeFault.release();"},{"id":"app-source-current#CASE-052-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","artifactSha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca","lines":{"start":51,"end":51},"valueSha256":"87f3bd4f335d31f728a4774f62cee70231af1e3e03d545012fc963928c1764b5","matched":true,"value":"      await commentFault.started;"},{"id":"app-source-current#CASE-052-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","artifactSha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca","lines":{"start":37,"end":37},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-052-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-111","path":"error-cases/CASE-052-feed-reaction-failure-recovery/case.json","artifactSha256":"9e11bfbe16749bff7ce9eb10f8b844e1b85441f617f16a6d5019c150a16df0b0","lines":{"start":118,"end":118},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-052-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","artifactSha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca","lines":{"start":102,"end":102},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-052-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-052-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-052-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"실제 like DOM aria-pressed를 true로 되돌리는 주입은 실패 후 rollback 표시 요구의 대표 오답이다. 댓글/팔로우 각 목적을 모두 주입했다고 확장하지 않는다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-110","path":"error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs","artifactSha256":"e55d52127f38a68a3acf427edeefa0e29bf9c8793699fabbaed52e0dce5fb4ca","lines":{"start":37,"end":37},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-052-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"실제 like DOM aria-pressed를 true로 되돌리는 주입은 실패 후 rollback 표시 요구의 대표 오답이다. 댓글/팔로우 각 목적을 모두 주입했다고 확장하지 않는다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-052-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-052-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-052-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-052-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-052-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-052-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-052-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-052-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-052-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-052-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-052-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-052-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":11,"end":11},"valueSha256":"7980706e8d806a973ef97e7d3eddea3be768fa79350b5a02f368c70af8b4f384","matched":true,"value":"    \"CASE-051\", \"CASE-052\", \"CASE-053\", \"CASE-054\", \"CASE-055\", \"CASE-057\", \"CASE-058\""},{"id":"app-source-current#CASE-052-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-052-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-052-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-052-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-052-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-052-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-052-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-052","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-053-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-053-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-053-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-053-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-053-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-053-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-053-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-053-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-112","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs","artifactSha256":"197fc792d6161f3d645d05fdc2dfb88bc2d013c236e99f3194e2c535d3c6896d","lines":{"start":102,"end":102},"valueSha256":"5962b55a6687b0567be22158b913f19d83ed490250dead01a10cac6c15c34b11","matched":true,"value":"      await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-053-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-112","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs","artifactSha256":"197fc792d6161f3d645d05fdc2dfb88bc2d013c236e99f3194e2c535d3c6896d","lines":{"start":42,"end":42},"valueSha256":"c77c8dbc0f807fa522d010ea42043c4d0fa2aae2ccf90b84a55704cc307e651e","matched":true,"value":"        await expect(invite).toBeVisible();"},{"id":"app-source-current#CASE-053-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-112","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs","artifactSha256":"197fc792d6161f3d645d05fdc2dfb88bc2d013c236e99f3194e2c535d3c6896d","lines":{"start":54,"end":54},"valueSha256":"9baa24e92c39b9c2e60893731b57aa2a8d45c35b61b7bc35ad4fac9c1fdd9be3","matched":true,"value":"        expect(members.data.map((row) => row.user_id).sort()).toEqual([owner.userId, c.userId].sort());"},{"id":"app-source-current#CASE-053-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-112","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs","artifactSha256":"197fc792d6161f3d645d05fdc2dfb88bc2d013c236e99f3194e2c535d3c6896d","lines":{"start":76,"end":76},"valueSha256":"8e09761085fa002fb82cff931fbede14941698dd2b4a090cd03b072234924f02","matched":true,"value":"        expect(revoked.error).toBeNull();"},{"id":"app-source-current#CASE-053-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-112","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs","artifactSha256":"197fc792d6161f3d645d05fdc2dfb88bc2d013c236e99f3194e2c535d3c6896d","lines":{"start":88,"end":88},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-053-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-113","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/case.json","artifactSha256":"3fc9f760d0d4174459f84c1e3eec6f8d532eef5dd1f00914c61ebeb155dd1278","lines":{"start":28,"end":28},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-053-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-112","path":"error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs","artifactSha256":"197fc792d6161f3d645d05fdc2dfb88bc2d013c236e99f3194e2c535d3c6896d","lines":{"start":102,"end":102},"valueSha256":"5962b55a6687b0567be22158b913f19d83ed490250dead01a10cac6c15c34b11","matched":true,"value":"      await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-053-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-053-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-053-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-053-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-053-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-053-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-053-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-053-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-053-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-053-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-053-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-053-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-053-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-053-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":11,"end":11},"valueSha256":"7980706e8d806a973ef97e7d3eddea3be768fa79350b5a02f368c70af8b4f384","matched":true,"value":"    \"CASE-051\", \"CASE-052\", \"CASE-053\", \"CASE-054\", \"CASE-055\", \"CASE-057\", \"CASE-058\""},{"id":"app-source-current#CASE-053-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-053-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-053-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-053-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-053-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-053-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-053-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-053","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-054-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-054-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-054-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-054-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-054-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-054-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-054-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-054-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","artifactSha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695","lines":{"start":73,"end":73},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-054-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","artifactSha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695","lines":{"start":28,"end":28},"valueSha256":"b7a077f1c5ce513f52aca43733c7742e491afb095fc01a9b1036e28920f30eb9","matched":true,"value":"      await expect(search).toHaveValue(\"한글\"); await expect(row).toBeVisible();"},{"id":"app-source-current#CASE-054-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","artifactSha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695","lines":{"start":32,"end":32},"valueSha256":"7bde2528a6ef5ad104696b9db3ed319d3b48262375790d6413e680e334197a69","matched":true,"value":"      await fault.started; fault.release();"},{"id":"app-source-current#CASE-054-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","artifactSha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695","lines":{"start":33,"end":33},"valueSha256":"c7078403b10bcea58fe275e29292b1dc819582afd9cdf97f9af301c072ef99aa","matched":true,"value":"      await expectErrorToast(page, \"커스텀 종목을 보관하지 못했어요. 다시 시도해 주세요.\");"},{"id":"app-source-current#CASE-054-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","artifactSha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695","lines":{"start":48,"end":48},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-054-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-115","path":"error-cases/CASE-054-catalog-search-archive-recovery/case.json","artifactSha256":"1a3cb6ba056e369f242ebe91923e84d827e0f2b0432832085ddd4fffbdc05dac","lines":{"start":64,"end":64},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-054-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","artifactSha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695","lines":{"start":73,"end":73},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-054-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-054-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-054-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"과거 세트 load+1 HTTP 응답 변경은 보존 비교 reader의 민감도다. 실제 archive가 DB 원본을 수정하도록 고장낸 실험은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-114","path":"error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs","artifactSha256":"11ae21d551771085618438864257785efd7a309914de5b1ecda9df2a9307d695","lines":{"start":48,"end":48},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-054-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"과거 세트 load+1 HTTP 응답 변경은 보존 비교 reader의 민감도다. 실제 archive가 DB 원본을 수정하도록 고장낸 실험은 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-054-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-054-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-054-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-054-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-054-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-054-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-054-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-054-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-054-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-054-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-054-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-054-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":11,"end":11},"valueSha256":"7980706e8d806a973ef97e7d3eddea3be768fa79350b5a02f368c70af8b4f384","matched":true,"value":"    \"CASE-051\", \"CASE-052\", \"CASE-053\", \"CASE-054\", \"CASE-055\", \"CASE-057\", \"CASE-058\""},{"id":"app-source-current#CASE-054-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-054-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-054-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-054-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-054-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-054-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-054-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-054","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-055-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-055-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-055-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-055-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-055-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-055-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-055-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-055-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-116","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs","artifactSha256":"b360c0e4db41a93436c907d46094fb5cc74afdd0306d1d2741b67af7d84c04d1","lines":{"start":117,"end":117},"valueSha256":"21f280fcaf9e2f76349c0074a10ae1aee24b394192a9edb97759cd750c8a715c","matched":true,"value":"    await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-055-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-116","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs","artifactSha256":"b360c0e4db41a93436c907d46094fb5cc74afdd0306d1d2741b67af7d84c04d1","lines":{"start":47,"end":47},"valueSha256":"e48c5e501d5cc43b62a9497c0b7f1f654c8bf4eb5b1df4c0d17c28f5c61137f2","matched":true,"value":"    await expect.poll(async () => {"},{"id":"app-source-current#CASE-055-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-116","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs","artifactSha256":"b360c0e4db41a93436c907d46094fb5cc74afdd0306d1d2741b67af7d84c04d1","lines":{"start":52,"end":52},"valueSha256":"bb950cb7745455a13a83d2cc7e18ebfaccb1ce1d8bc5c18a0b8af3b16a3304b8","matched":true,"value":"    }, { timeout: 10_000, intervals: [250, 500, 1000] }).toBe(true);"},{"id":"app-source-current#CASE-055-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-116","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs","artifactSha256":"b360c0e4db41a93436c907d46094fb5cc74afdd0306d1d2741b67af7d84c04d1","lines":{"start":69,"end":69},"valueSha256":"beec1bfa139300c50af3a18ca74a9f9db41caba93415ba22b5ce3f634d0ade81","matched":true,"value":"        await expectBatch(2, [\"failed\"]);"},{"id":"app-source-current#CASE-055-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-116","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs","artifactSha256":"b360c0e4db41a93436c907d46094fb5cc74afdd0306d1d2741b67af7d84c04d1","lines":{"start":74,"end":74},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-055-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-117","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/case.json","artifactSha256":"2ddf49818cdfd550f7d153c897df0ac220267a391051a1a822193dca2b1a538b","lines":{"start":52,"end":52},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-055-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-116","path":"error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs","artifactSha256":"b360c0e4db41a93436c907d46094fb5cc74afdd0306d1d2741b67af7d84c04d1","lines":{"start":117,"end":117},"valueSha256":"21f280fcaf9e2f76349c0074a10ae1aee24b394192a9edb97759cd750c8a715c","matched":true,"value":"    await c.completeJourney(page, monitor);"},{"id":"app-source-current#CASE-055-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-055-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-055-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-055-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-055-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-055-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-055-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-055-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-055-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-055-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-055-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-055-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-055-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-055-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":11,"end":11},"valueSha256":"7980706e8d806a973ef97e7d3eddea3be768fa79350b5a02f368c70af8b4f384","matched":true,"value":"    \"CASE-051\", \"CASE-052\", \"CASE-053\", \"CASE-054\", \"CASE-055\", \"CASE-057\", \"CASE-058\""},{"id":"app-source-current#CASE-055-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-055-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-055-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-055-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-055-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-055-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-055-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-055","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-057-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-057-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-057-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-057-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-057-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-057-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-057-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-057-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","artifactSha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d","lines":{"start":101,"end":101},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-057-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","artifactSha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d","lines":{"start":29,"end":29},"valueSha256":"7bde2528a6ef5ad104696b9db3ed319d3b48262375790d6413e680e334197a69","matched":true,"value":"      await fault.started; fault.release();"},{"id":"app-source-current#CASE-057-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","artifactSha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d","lines":{"start":30,"end":30},"valueSha256":"2d9023d5d7e05673b1497a864f0f419287f59664559836b99f4c7ef531f00f8e","matched":true,"value":"      expect((await dialog).message()).toBe(\"데이터를 내보내지 못했어요. 다시 시도해 주세요.\");"},{"id":"app-source-current#CASE-057-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","artifactSha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d","lines":{"start":35,"end":35},"valueSha256":"810b2a21be43860bf33a5e3ab466a6ae2e4964a8f74c407312d2d4147dd17aed","matched":true,"value":"      const download = await downloaded;"},{"id":"app-source-current#CASE-057-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"소스는 manifest의 정확한 method/path/status/시도와 실제 CASE 관측을 대조한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","artifactSha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d","lines":{"start":74,"end":74},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-057-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-119","path":"error-cases/CASE-057-export-download-facts-retry/case.json","artifactSha256":"f9394bf043915a38db51d443e393a45cdc3705dc649b2975222afe1afdb7104e","lines":{"start":76,"end":76},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-057-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","artifactSha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d","lines":{"start":101,"end":101},"valueSha256":"42bca2f52525e5602031505f97a23e413987f35604c71e7c83b70be39914bd03","matched":true,"value":"    await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-057-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-057-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-057-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"브라우저의 실제 owner-scoped session 응답에 준비된 타 owner 행을 추가하고 실제 재다운로드 JSON을 같은 reader로 읽는다. export 결과 누출 판정에는 적합하나 실제 DB RLS 제약 제거 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-118","path":"error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs","artifactSha256":"9b06074552f24878c26e9a140be88689aaedc9094e59af891b98b53625dbe82d","lines":{"start":74,"end":74},"valueSha256":"4e8b0a542e141b083a6528d35362d0cf7e406453a537ebe8788a3332e41dadcd","matched":true,"value":"      await c.verifyControl({"},{"id":"app-source-current#CASE-057-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"브라우저의 실제 owner-scoped session 응답에 준비된 타 owner 행을 추가하고 실제 재다운로드 JSON을 같은 reader로 읽는다. export 결과 누출 판정에는 적합하나 실제 DB RLS 제약 제거 증거는 아니다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-057-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-057-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-057-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-057-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-057-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-057-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-057-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-057-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-057-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-057-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-057-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-057-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":11,"end":11},"valueSha256":"7980706e8d806a973ef97e7d3eddea3be768fa79350b5a02f368c70af8b4f384","matched":true,"value":"    \"CASE-051\", \"CASE-052\", \"CASE-053\", \"CASE-054\", \"CASE-055\", \"CASE-057\", \"CASE-058\""},{"id":"app-source-current#CASE-057-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-057-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-057-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-057-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-057-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-057-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-057-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-057","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"app-source-current#CASE-058-2-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-058-2-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-058-2-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":233,"end":233},"valueSha256":"6044a75a89f0102b051ae095edf9928d355dbf5845ea3dc3bef7301d145b2447","matched":true,"value":"      sessionDate: formatSeoulDate(new Date()),"},{"id":"app-source-current#CASE-058-2-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 준비는 case fixture의 별도 Auth owner·실행 토큰·KST sessionDate와 소스 입력으로 확인된다. 환경/시각/SHA를 진단에 기록하도록 구현되어 있으나 현재 후보의 이 CASE 실행 산출물은 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":713,"end":713},"valueSha256":"cddd5b9c9b62a8bbc92a901cbff7c14c6b7c11f340a61b2d94f3c87f039523a6","matched":true,"value":"      cleanupStage = \"finished\";"},{"id":"app-source-current#CASE-058-3-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":118,"end":118},"valueSha256":"0c8e0a92cac7217718567fef4fbc82b0e29b27593cd98be0021489bfcfe29f7f","matched":true,"value":"    const runToken = `${Date.now().toString(36)}-${randomUUID().slice(0, 6)}`;"},{"id":"app-source-current#CASE-058-3-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":183,"end":183},"valueSha256":"d74a69c93aa2251bf9ad7d4d6fb960943e77f4545e30f2faa4ccd4931aa45d47","matched":true,"value":"      user = await provisionThrowawayUser("},{"id":"app-source-current#CASE-058-3-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":320,"end":320},"valueSha256":"183d5039249fb9b98ffa90dfba3dbf6c750ded6eeb7b1340d4edc5eed9f4c4b5","matched":true,"value":"      async createDisposableActor(label = \"Control\") {"},{"id":"app-source-current#CASE-058-3-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 코드상 CASE별 disposable owner와 테스트 context를 사용하고 읽기/쓰기를 해당 owner 또는 준비 ID로 제한한다. 현재 후보의 단독/병렬 실행과 모든 소유 자원 복원을 함께 확인한 증거는 미확인이다.","artifact":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","artifactSha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab","lines":{"start":91,"end":91},"valueSha256":"5962b55a6687b0567be22158b913f19d83ed490250dead01a10cac6c15c34b11","matched":true,"value":"      await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-058-6-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","artifactSha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab","lines":{"start":34,"end":34},"valueSha256":"b064ad2a824aad4a01409b6ba8a0a5977e135cea38b5b4c198a3fe256c02f81a","matched":true,"value":"            if (this.name === \"pendingSaves\" && window.__case058AbortCount === 0) {"},{"id":"app-source-current#CASE-058-6-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","artifactSha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab","lines":{"start":45,"end":45},"valueSha256":"81f4b3e46dc752ae54ce4c167f5ef03b37e9c0746dbe0927c527e17aad3200cc","matched":true,"value":"        await expect(view(page, \"workout.finish\").locator('[role=\"alert\"]')).toHaveText(\"운동 기록을 저장하지 못했어요. 아래 저장 버튼으로 다시 시도해 주세요.\");"},{"id":"app-source-current#CASE-058-6-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","artifactSha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab","lines":{"start":49,"end":49},"valueSha256":"484cbb7282f59e91cec67310c470b11b321c8e95350484d2fcec892bb4d36565","matched":true,"value":"        expect(await page.evaluate(() => window.__case058AbortCount)).toBe(1);"},{"id":"app-source-current#CASE-058-6-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"소스는 선언한 UI/저장소/서버 상태와 요청 사건을 단언한다. control도 실제 적용 count=1을 요구한다. 현재 수정 소스의 새 실행 결과 미확인이므로 발생 완료 P로 올리지 않는다.","artifact":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","artifactSha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab","lines":{"start":55,"end":55},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-058-8-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-121","path":"error-cases/CASE-058-indexeddb-enqueue-failure/case.json","artifactSha256":"f36ade470ddd645b364dae69daba6c7893bb071c952b9e9c63da951cf7065834","lines":{"start":27,"end":27},"valueSha256":"b1aa6570613467b7bf05bb6566bebd3fd2d70baf9c24358bd4491783e774201f","matched":true,"value":"    \"checkpoints\": ["},{"id":"app-source-current#CASE-058-8-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","artifactSha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab","lines":{"start":91,"end":91},"valueSha256":"5962b55a6687b0567be22158b913f19d83ed490250dead01a10cac6c15c34b11","matched":true,"value":"      await c.completeJourney(page, monitor, { beforeCleanup: async () => { expect((await c.deleteCurrentUser()).error).toBeNull(); } });"},{"id":"app-source-current#CASE-058-8-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":107,"end":107},"valueSha256":"5c0a4f8bb30c91199e54208863365651a869c9cff0589af7395e07be21d2307e","matched":true,"value":"  for (const step of steps) {"},{"id":"app-source-current#CASE-058-8-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"checkpoint와 prove 안에 실제 단언을 두고 최종 completion 전 완료한다. 공통 reporter는 실제 expect 시작/종료·오류·부모 await를 검사한다. 현재 실행의 필수 단언 전체 완료 증거는 미확인이다.","artifact":"source-63","path":"e2e/support/checkpointEvidence.mjs","artifactSha256":"cc9ebb0b119a550824d7a279c13c4349da04d43eeccfdefd8905c83c87bc3fa0","lines":{"start":126,"end":126},"valueSha256":"0f0770f276231b55b60f5302ada016afa23268841231a2f3eb09f8c7908c5628","matched":true,"value":"    const assertions = children.filter((child) => child.category === 'expect' && !pollSamples.has(child.index));"},{"id":"app-source-current#CASE-058-9-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"실제 durable draft의 exercises=[] 주입은 enqueue 실패 후 완료 입력 보존 단언과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-120","path":"error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs","artifactSha256":"6452985a8630d35a2ad12e5df6981aca76cd12c99df6fae42fdbc13c1fbeb9ab","lines":{"start":55,"end":55},"valueSha256":"fe3ca2ff73e404202ddbedc3c2122a41a74b17a147bfcd2fb14c5490f6829e86","matched":true,"value":"        await c.verifyControl({"},{"id":"app-source-current#CASE-058-9-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"실제 durable draft의 exercises=[] 주입은 enqueue 실패 후 완료 입력 보존 단언과 직접 대응한다. 승인된 CASE당 대표 1개 범위에서는 현재 관측 경계가 목적에 대응한다. 현재 후보의 정상→실제 적용1회→같은 reader 목표 불일치→복원 일치와 공통 도구 검증 증거가 확인되면 해당 대표 결함 범위로 판정할 수 있다. 다른 모든 부목적의 product mutant를 추가하는 요구로 확대하지 않는다.","artifact":"source-4","path":"e2e/support/qualityControl.mjs","artifactSha256":"d7b5e7cbfc53ad549e47f14b0848e589b9efb86eb6e80f7db4c39bdf88659d06","lines":{"start":5,"end":5},"valueSha256":"9d7e55785751b36ed222773bbfe34b5a459ca700e59243b9ef8aa05e5e76b357","matched":true,"value":"export function diagnosticValue(value, key = '', seen = new WeakSet()) {"},{"id":"app-source-current#CASE-058-10-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":412,"end":412},"valueSha256":"946a199b6da41ac54e47cbe0e5ea51a40054073aaeb24bf1ecf414fd63e977b4","matched":true,"value":"    async function completeJourney(page, monitor, { beforeCleanup } = {}) {"},{"id":"app-source-current#CASE-058-10-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":499,"end":499},"valueSha256":"4840caec98493a848d4b8acd66983fa8979af94deb93b15705eb697113132583","matched":true,"value":"    async function completeCleanup({ includeDisposableActors = true } = {}) {"},{"id":"app-source-current#CASE-058-10-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":648,"end":648},"valueSha256":"7f62954a414d88ac9307230e436c5a39a23c999b1229155ac65e074c70e9e1f1","matched":true,"value":"      cleanupStage = \"pages\";"},{"id":"app-source-current#CASE-058-10-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"공통 완료 절차가 실제 page 종료와 오류 확인을 Auth 삭제 전에 수행하도록 순서를 수리했다. CASE별 계정/데이터 확인과 실패 시 fixture finally 정리 경로를 유지했다. 해당 최종 CASE 및 공통 실패 회귀 근거 연결 전까지 U다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":659,"end":659},"valueSha256":"937f5c71c2f4cee8e7da6f701bcf9d3d42c750142061a9489fd5070a06d0b7b6","matched":true,"value":"      cleanupStage = \"primary-account\";"},{"id":"app-source-current#CASE-058-11-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":39,"end":39},"valueSha256":"05a8dab96f9caa2481b351aaddfe4b74ec5ee716c79ab418987be2802590ceb8","matched":true,"value":"  timeout: 60_000,"},{"id":"app-source-current#CASE-058-11-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":74,"end":74},"valueSha256":"b78479f50a88a68f7cbc62b6989aaf78cf6ba722cfac4d0dc8c81309da1aec74","matched":true,"value":"    timeout: 120_000,"},{"id":"app-source-current#CASE-058-11-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 설정은 CASE 준비+본문 60초이며 공유 webServer 준비는 별도 120초다. 현재 후보 최초 시도의 실제 CASE 소요/timeout 결과는 아직 확인하지 않았다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":93,"end":93},"valueSha256":"da134db9a5173ca7749cf7b0e9e5fe8485d28f670f68d790d28d05e8df0ec1c3","matched":true,"value":"  caseContext: async ({ onboardingFixtureMode }, use, testInfo) => {"},{"id":"app-source-current#CASE-058-12-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":40,"end":40},"valueSha256":"d33e9a0f26bf0e6243aade3daf7a8dbb877daf17372a9a7359dd1e5b23bdd3cf","matched":true,"value":"  expect: { timeout: 10_000 },"},{"id":"app-source-current#CASE-058-12-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":56,"end":56},"valueSha256":"3138b4e4e5ad97ce9c48aa562c5c3a7395261441e1ecad44c76c76e560eace66","matched":true,"value":"    actionTimeout: 10_000,"},{"id":"app-source-current#CASE-058-12-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-64","path":"e2e/support/featureJourney.mjs","artifactSha256":"a894cdae449fac2efa9746f661baf11e8f77785193a67623b2deb6c40dfc5eb9","lines":{"start":85,"end":85},"valueSha256":"e9a6e5a53c9a4e76654c42f951ab08e95086741b22af0b0c4e01230f22dcb4bf","matched":true,"value":"  const arrival = lazyConditionWait(started, `first ${method} ${path} request`, { page });"},{"id":"app-source-current#CASE-058-12-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"정적 Playwright action/navigation/expect·SDK/control 상한은10초다. lazyConditionWait는최초await의deadline을재사용한다. ownerStats는최초조회부터drainer/0세대job조회까지하나의10초deadline과AbortSignal/SQL취소를적용한다. 현재후보의실제개별동작시간및공통timeout실패경로는별도runtime override에서확인한다.","artifact":"source-65","path":"e2e/support/boundedWait.mjs","artifactSha256":"ff3b097786dbbf5b0d277edbbf594e5f92382a4346b0634eef3933cd0eacbdb1","lines":{"start":26,"end":26},"valueSha256":"efa261199815402d22686f3cfaf2c6bcc92446edd26a470bb363366923882f8a","matched":true,"value":"export function lazyConditionWait(promise, label, options) {"},{"id":"app-source-current#CASE-058-14-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-66","path":"e2e/required-coverage.json","artifactSha256":"fe9aea94dfc19844875b7c18cc8d15da085189c319d564733f5bdee2c554e6f0","lines":{"start":11,"end":11},"valueSha256":"7980706e8d806a973ef97e7d3eddea3be768fa79350b5a02f368c70af8b4f384","matched":true,"value":"    \"CASE-051\", \"CASE-052\", \"CASE-053\", \"CASE-054\", \"CASE-055\", \"CASE-057\", \"CASE-058\""},{"id":"app-source-current#CASE-058-14-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-5","path":"playwright.config.mjs","artifactSha256":"e707379db606ef0474ba7d8c23b8ccd9d18d98eb086678cf095fe18de1b5d491","lines":{"start":22,"end":22},"valueSha256":"616a2224310dede8b38a2bbbb5adce87509cb65f6541061951af3f1890dd9614","matched":true,"value":"if (process.env.E2E_REQUIRED_PROFILE === \"local\" && !localAuthAdminReady) throw new Error(\"Required PR E2E needs the isolated local Auth Admin stack; it cannot fall back to a partial credential run\");"},{"id":"app-source-current#CASE-058-14-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-67","path":"scripts/check-e2e-evidence.mjs","artifactSha256":"e302139d315c14a1933868d0547727ac29f8f58385f48d256afe827c6d4545d6","lines":{"start":57,"end":57},"valueSha256":"31580170202dde71e19134bf06fb5518140226f5da243a952d82f0ae27885066","matched":true,"value":"    for (const id of inventory[lane]) if (seen.get(id) !== 1) errors.push(`${label}: required ${id} must appear exactly once (actual ${seen.get(id) || 0})`);"},{"id":"app-source-current#CASE-058-14-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"필수 app inventory와reporter는skip/누락/중복/retry를거절한다. 공통통계취소2검사가이전일반check에서조건부skip된것을통과로세지않고, 현재local/hosted DB lane 명령에해당파일을포함하며BARBELIC_REQUIRE_DB=1일때로컬container없으면즉시실패한다. 현재후보의해당필수DB실행·전체mandatory 결과는별도runtime/CI근거대기다.","artifact":"source-2","path":"e2e/support/requiredEvidenceReporter.mjs","artifactSha256":"6e782a420b8af97fc55c17cc2e3097adeaa7f514d8dfad582a4ef86df3e38ddf","lines":{"start":47,"end":47},"valueSha256":"a430df191025d27987eff03c9c7f763c1de158d93fda28df61a6c46d12c08723","matched":true,"value":"  if (test.expectedStatus !== 'passed' || result.status !== 'passed' || result.retry !== 0) errors.push('required test must pass on its first attempt without skip/fixme/expected failure');"},{"id":"app-source-current#CASE-058-15-0","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":628,"end":628},"valueSha256":"dca916e7a50e83889db6c2ed4ab5a2fbe0b9158a15f5b8f359cbcee2fcf0b447","matched":true,"value":"      const firstFailure = diagnosticValue({ message: testInfo.error?.message || preparationError?.message, stack: testInfo.error?.stack || preparationError?.stack });"},{"id":"app-source-current#CASE-058-15-1","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":629,"end":629},"valueSha256":"f7a08581c282e9c105892ec41ad599266f04e96d4d539ba5f23468b5913396b3","matched":true,"value":"      const diagnosticSnapshot = (finished = false) => ({"},{"id":"app-source-current#CASE-058-15-2","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-3","path":"error-cases/support/fixture.mjs","artifactSha256":"116023c6049e23b8f7cee941db0bfd60ff3a53ee283987de9268d39a9cefa0f2","lines":{"start":649,"end":649},"valueSha256":"632594f9a0d25b756b77e05b132add001da48d3f138db19d20386d1239946428","matched":true,"value":"      writeDiagnostic(diagnosticSnapshot());"},{"id":"app-source-current#CASE-058-15-3","kind":"source-review","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"source-review","caseId":"CASE-058","explanation":"최초 오류·정리 단계·요청/문서/미완료 작업을 정리 시작 전부터 파일에 기록하는 소스를 확인했다. 정리 timeout 전에 기록이 남는지, 실제 값이 안전하게 보존되는지는 현재 CASE 산출물 및 공통 실패경로 검증과 연결해야 한다. 과거 SHA 증거로 대체하지 않는다.","artifact":"source-6","path":"e2e/support/caseDiagnostic.mjs","artifactSha256":"6104b8471a8104e3f810097a38d4bd244d82d96f8cce4541199e0bbd5f291a7f","lines":{"start":8,"end":8},"valueSha256":"eb5c39d294ffadbe1a5f35a2b63abc4305dfaf2ae9034961611450964891eb21","matched":true,"value":"export async function beginCaseDiagnostic(testInfo, initial) {"},{"id":"run-browser-1#case-01-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-001","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"17918fe6a941b63dd294394201ed76eb912f6288a0b0385686f187becfaafa4f","matched":true,"value":8654},{"id":"run-browser-1#case-01-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-001","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/checkpoints","valueSha256":"9eef8b030e6001e6ffe65e873c6fea894c428e8ee92486529136db1ded9ac01b","matched":true,"value":[{"id":"custom-reps-state","passed":true,"assertions":15},{"id":"exact-persistence","passed":true,"assertions":23},{"id":"reload-reentry","passed":true,"assertions":13},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-01-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-001","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-01-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-001","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-01-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-001","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-01-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-001","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-01-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-001","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/checkpoints","valueSha256":"9eef8b030e6001e6ffe65e873c6fea894c428e8ee92486529136db1ded9ac01b","matched":true,"value":[{"id":"custom-reps-state","passed":true,"assertions":15},{"id":"exact-persistence","passed":true,"assertions":23},{"id":"reload-reentry","passed":true,"assertions":13},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-01-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/rpcObservers","valueSha256":"079b9a04f5eb79489c6469f39ba624d36cb5dc5cb2077f33d32880ca5e9288fd","matched":true,"value":[{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":1,"completed":3,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":1,"method":"POST","settled":true,"failed":false},{"id":2,"generation":1,"method":"POST","settled":true,"failed":false},{"id":3,"generation":1,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-1#case-01-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-001","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/completion","valueSha256":"5ee9ad61db9a4f463508437a4675cbf27b9597afaf95e8f86410d608fddf9d7c","matched":true,"value":{"caseId":"CASE-001","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":3,"frontend-state":2,"postgresql-readback":1,"reload-reentry":1,"rendered-user-journey":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-01-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-001","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls","valueSha256":"d5964ba96758311720ccd1f1bbaeed241c98395e365e6931174914683beecaaa","matched":true,"value":[{"id":"case-001-reps-only-render-loss","description":"횟수 전용 사용자 종목의 편집 화면이 중량 입력 없이 3회 입력을 정상 표시해야 한다.","boundary":"dom","status":"passed","expected":{"visible":true,"value":"3"},"comparator":{"kind":"deepEqual"},"normalActual":{"visible":true,"value":"3"},"normal":{"matched":true},"negativeActual":{"visible":false,"value":"3"},"negative":{"matched":false,"applied":{"count":1}},"restoredActual":{"visible":true,"value":"3"},"restored":{"matched":true},"durationMs":47}]},{"id":"run-browser-1#case-01-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-001","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls/0/normalActual","valueSha256":"10097a6147ea7855259f59fbaa4e5b40102e93dc87c4af15e6ae3126d5791cfe","matched":true,"value":{"visible":true,"value":"3"}},{"id":"run-browser-1#case-01-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-001","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls/0/negativeActual","valueSha256":"4dc0ac9adc502f4dacc8c8b328d5052679e8454a20f140eac79bb994a1e59e24","matched":true,"value":{"visible":false,"value":"3"}},{"id":"run-browser-1#case-01-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-001","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls/0/restoredActual","valueSha256":"10097a6147ea7855259f59fbaa4e5b40102e93dc87c4af15e6ae3126d5791cfe","matched":true,"value":{"visible":true,"value":"3"}},{"id":"run-browser-1#case-01-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-001","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-01-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-001","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-01-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-001","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-01-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-001","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-01-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-01-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/quality/cleanup/resources","valueSha256":"e1450548d06c5c4afac6f6d26ccf840de83e3f634186e3eb52033a4c11188a16","matched":true,"value":[{"id":"control-case-001-reps-only-render-loss","status":"passed","settled":true,"durationMs":7},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":93},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":2}]},{"id":"run-browser-1#case-01-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-01-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-01-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-01-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-01-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-01-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-01-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-01-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-01-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/startedAt","valueSha256":"461b8f7663f7e469ea1796e410b9c7bdae4f792999adde916a3797f49987da7b","matched":true,"value":"2026-09-09T20:02:56.081Z"},{"id":"run-browser-1#case-01-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/finishedAt","valueSha256":"f7831b5593a56649a05787c35ecd3f475dc9820dcc1ecf7d0a9a61b0470e0eee","matched":true,"value":"2026-09-09T20:03:04.625Z"},{"id":"run-browser-1#case-01-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-01-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-01-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-001","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-01-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/pages/0/pageClosed","valueSha256":"48a8808f443ab4b1bf481a7db961be438b5a01132adecc1480f8d6a7ac2c0a39","matched":true,"value":{"sequence":173,"pendingRequestIds":[]}},{"id":"run-browser-1#case-01-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/pages/0/routeCleanup","valueSha256":"0581c9533d4a37c465a47900775c7727c46d8afd35af758ecef490fa1e4a5de3","matched":true,"value":[{"startedSequence":171,"status":"completed","completedSequence":172}]},{"id":"run-browser-1#case-01-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/pages/0/observerDisposal","valueSha256":"f182bc8ea54287ede2fea21c2cde2eecea66371e3c595f60ab9a333bc7190218","matched":true,"value":{"status":"completed","closeSequence":173,"startedSequence":174,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":175}},{"id":"run-browser-1#case-01-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-01-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-001","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/0/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-02-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-002","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"0ff6f4bbfaf422d4f22d3e2b184c0b1eadaf695cd9c1ee70b09c260f08666ae4","matched":true,"value":5402},{"id":"run-browser-1#case-02-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-002","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/checkpoints","valueSha256":"1a51e733324d160ae00ae8c8dbaca72034bda7d2dbd98a235c3dd6df06ee5386","matched":true,"value":[{"id":"save-and-interaction","passed":true,"assertions":15},{"id":"aggregate-and-reentry","passed":true,"assertions":26},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-02-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-002","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-02-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-002","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-02-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-002","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-02-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-002","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-02-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-002","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/checkpoints","valueSha256":"1a51e733324d160ae00ae8c8dbaca72034bda7d2dbd98a235c3dd6df06ee5386","matched":true,"value":[{"id":"save-and-interaction","passed":true,"assertions":15},{"id":"aggregate-and-reentry","passed":true,"assertions":26},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-02-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/rpcObservers","valueSha256":"cd39a79cf32f6b902cfc375e2903375c9275b7fd90a9ce4ac74a8aad614bc68c","matched":true,"value":[{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":1,"completed":4,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":1,"method":"POST","settled":true,"failed":false},{"id":3,"generation":1,"method":"POST","settled":true,"failed":false},{"id":4,"generation":1,"method":"POST","settled":true,"failed":false},{"id":5,"generation":1,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-1#case-02-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-002","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/completion","valueSha256":"5750a05102c411960a1c460fbcce551baa887d8d5d10484fdec5fd0b9b3787bb","matched":true,"value":{"caseId":"CASE-002","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":2,"frontend-state":1,"reload-reentry":1,"rendered-user-journey":1,"postgresql-readback":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-02-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-002","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls","valueSha256":"07f153d8ca089edb454dce4dc749c1c4fb9e05797668822463d8fc1765015e0e","matched":true,"value":[{"id":"case-002-rename-editor-remains-blocking","description":"rename 저장이 revision2에 도달하면 편집기와 scrim이 사라져 일지 상호작용이 가능해야 한다.","boundary":"dom","status":"passed","expected":0,"comparator":{"kind":"deepEqual"},"normalActual":0,"normal":{"matched":true},"negativeActual":1,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":0,"restored":{"matched":true},"durationMs":14}]},{"id":"run-browser-1#case-02-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-002","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls/0/normalActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-02-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-002","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls/0/negativeActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-02-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-002","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls/0/restoredActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-02-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-002","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-02-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-002","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-02-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-002","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-02-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-002","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-02-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-02-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/quality/cleanup/resources","valueSha256":"b03cd0e28f6db53775431c21a1cb848df7d78c1de783a98ba10ee148d5193911","matched":true,"value":[{"id":"control-case-002-rename-editor-remains-blocking","status":"passed","settled":true,"durationMs":3},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":98},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":2}]},{"id":"run-browser-1#case-02-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-02-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-02-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-02-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-02-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-02-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-02-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-02-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-02-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/startedAt","valueSha256":"e0c3cc70186ff3d9c73f8deac2a2c626e6842a16a85e74f6c9ccf6a0aa07acfd","matched":true,"value":"2026-09-09T20:03:04.925Z"},{"id":"run-browser-1#case-02-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/finishedAt","valueSha256":"c9ebfe1911a30750c6be415eccda4752d7afddffc55a4bbebf5b6cfe9261eab1","matched":true,"value":"2026-09-09T20:03:10.202Z"},{"id":"run-browser-1#case-02-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-02-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-02-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-002","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-02-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/pages/0/pageClosed","valueSha256":"5a198e974bc0ecf8a9d227f54119bb7041c278450be4784fd81228258f0a0224","matched":true,"value":{"sequence":167,"pendingRequestIds":[]}},{"id":"run-browser-1#case-02-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/pages/0/routeCleanup","valueSha256":"4665a5c13893f09565f83a443cc00bbc32620b718ac0fc79ea4c0df87a8e90d4","matched":true,"value":[{"startedSequence":165,"status":"completed","completedSequence":166}]},{"id":"run-browser-1#case-02-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/pages/0/observerDisposal","valueSha256":"409afe28f53d5752995d60667a15365ab30c5da43e7998b2ec2f416f270bf984","matched":true,"value":{"status":"completed","closeSequence":167,"startedSequence":168,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":169}},{"id":"run-browser-1#case-02-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-02-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-002","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/1/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-03-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-004","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"f338a66d1dc630488f938baf32f8bd95bf6e26fb48e022258e5349c431b618c1","matched":true,"value":8375},{"id":"run-browser-1#case-03-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-004","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/checkpoints","valueSha256":"128d70a3f47fb47e709523d4b7252f719850a000cd07078b934167665af1424a","matched":true,"value":[{"id":"exact-save-and-home-return","passed":true,"assertions":16},{"id":"immediate-owner-feed-hydration","passed":true,"assertions":8},{"id":"immediate-home-day-hydration","passed":true,"assertions":10},{"id":"feed-and-calendar-reload-reentry","passed":true,"assertions":19},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-03-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-004","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-03-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-004","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-03-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-004","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-03-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-004","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-03-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-004","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/checkpoints","valueSha256":"128d70a3f47fb47e709523d4b7252f719850a000cd07078b934167665af1424a","matched":true,"value":[{"id":"exact-save-and-home-return","passed":true,"assertions":16},{"id":"immediate-owner-feed-hydration","passed":true,"assertions":8},{"id":"immediate-home-day-hydration","passed":true,"assertions":10},{"id":"feed-and-calendar-reload-reentry","passed":true,"assertions":19},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-03-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/rpcObservers","valueSha256":"d4469f92a7d98948cf03de2986605580ddec1a89a3a31469ebca6b37798b63d2","matched":true,"value":[{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":1,"completed":4,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":1,"method":"POST","settled":true,"failed":false},{"id":2,"generation":1,"method":"POST","settled":true,"failed":false},{"id":3,"generation":1,"method":"POST","settled":true,"failed":false},{"id":4,"generation":1,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-1#case-03-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-004","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/completion","valueSha256":"cfa5579dda4f0773eb2001c18cd8e951174332b65cb4ccedc44bda11803ab316","matched":true,"value":{"caseId":"CASE-004","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":1,"authenticated-api-rpc":2,"postgresql-readback":1,"rendered-user-journey":3,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-03-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-004","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls","valueSha256":"a5ac415b48db37f5944a4dbba99ec7ab1cabf450a79d03ad5d1322350e1c4043","matched":true,"value":[{"id":"case-004-post-save-summary-stays-at-baseline","description":"저장 직후 오늘 요약이 원본 baseline 대비 350kg·1세트·5랩 증가해야 한다.","boundary":"dom","status":"passed","expected":350,"comparator":{"kind":"deepEqual"},"normalActual":350,"normal":{"matched":true},"negativeActual":0,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":350,"restored":{"matched":true},"durationMs":28}]},{"id":"run-browser-1#case-03-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-004","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls/0/normalActual","valueSha256":"deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6","matched":true,"value":350},{"id":"run-browser-1#case-03-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-004","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls/0/negativeActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-03-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-004","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls/0/restoredActual","valueSha256":"deeeb5df3f2cee6bf4e597a8a3a878a6ce49b932b9e90b416922d4499f54fae6","matched":true,"value":350},{"id":"run-browser-1#case-03-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-004","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-03-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-004","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-03-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-004","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-03-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-004","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-03-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-03-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/quality/cleanup/resources","valueSha256":"ac0526174bc82e29a9c3c9e1a7de334810e1bb91ac824ab5129d331cf6d82046","matched":true,"value":[{"id":"control-case-004-post-save-summary-stays-at-baseline","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":94},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":1}]},{"id":"run-browser-1#case-03-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-03-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-03-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-03-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-03-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-03-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-03-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-03-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-03-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/startedAt","valueSha256":"9473ab844a5b6f9b5dfba04cff42c54afae5a235c456347557c8f81ae4fc25c0","matched":true,"value":"2026-09-09T20:03:10.478Z"},{"id":"run-browser-1#case-03-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/finishedAt","valueSha256":"b9f7ccaba43628c700671aee7e6f8acf472b4e28d62d69f2cad89309e406bd6a","matched":true,"value":"2026-09-09T20:03:18.745Z"},{"id":"run-browser-1#case-03-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-03-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-03-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-004","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-03-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/pages/0/pageClosed","valueSha256":"5152664edf6ab4f76811a26241ac5dd8edbea2285146f4853f899b45acd707eb","matched":true,"value":{"sequence":188,"pendingRequestIds":[]}},{"id":"run-browser-1#case-03-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/pages/0/routeCleanup","valueSha256":"8de5171f4057bac0a2bec0ecae81085ed95b048322e56a43abdcb61d4fa74b93","matched":true,"value":[{"startedSequence":186,"status":"completed","completedSequence":187}]},{"id":"run-browser-1#case-03-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/pages/0/observerDisposal","valueSha256":"afcc348a592acbc5e9e86f21b5905125aebc43a0d3b333af54fedb5d975b600a","matched":true,"value":{"status":"completed","closeSequence":188,"startedSequence":189,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":190}},{"id":"run-browser-1#case-03-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-03-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-004","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/2/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-04-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-005","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"9df82ff1547bdff292926e347ad933ea0af998b93568749faca6b121222a04cf","matched":true,"value":4813},{"id":"run-browser-1#case-04-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-005","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/checkpoints","valueSha256":"e812ade2497486e21c81dad44f1c01701dc108654bf89edf2f90332621712a51","matched":true,"value":[{"id":"persisted-outcomes-and-rpcs","passed":true,"assertions":16},{"id":"rendered-pr-detail","passed":true,"assertions":9},{"id":"reload-pr-detail","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-04-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-005","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-04-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-005","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-04-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-005","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-04-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-005","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-04-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-005","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/checkpoints","valueSha256":"e812ade2497486e21c81dad44f1c01701dc108654bf89edf2f90332621712a51","matched":true,"value":[{"id":"persisted-outcomes-and-rpcs","passed":true,"assertions":16},{"id":"rendered-pr-detail","passed":true,"assertions":9},{"id":"reload-pr-detail","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-04-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-04-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-005","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/completion","valueSha256":"1caa83c14c8eb0e88c01806e48bb8d5d816627e013f90f3b3aafcc2a39361f04","matched":true,"value":{"caseId":"CASE-005","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"postgresql-readback":1,"authenticated-api-rpc":1,"frontend-state":1,"rendered-user-journey":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-04-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-005","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls","valueSha256":"8999bf2b947c3ece52eb227e826259a673d21e0ff2a92101c4eedbef160efbcb","matched":true,"value":[{"id":"case-005-zero-rep-failure-disappears-from-history","description":"성공70×5와 실패75×0 두 시작 세트가 남고 미시작 세트는 빠져야 한다.","boundary":"http-response","status":"passed","expected":[{"reps":5,"targetReps":5,"setResult":"completed","load":70},{"reps":0,"targetReps":1,"setResult":"rep_failure","load":75}],"comparator":{"kind":"deepEqual"},"normalActual":[{"reps":5,"targetReps":5,"setResult":"completed","load":70},{"reps":0,"targetReps":1,"setResult":"rep_failure","load":75}],"normal":{"matched":true},"negativeActual":[{"reps":5,"targetReps":5,"setResult":"completed","load":70}],"negative":{"matched":false,"applied":{"count":1,"method":"POST","path":"/rest/v1/rpc/get_exercise_pr_history"}},"restoredActual":[{"reps":5,"targetReps":5,"setResult":"completed","load":70},{"reps":0,"targetReps":1,"setResult":"rep_failure","load":75}],"restored":{"matched":true},"durationMs":90}]},{"id":"run-browser-1#case-04-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-005","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls/0/normalActual","valueSha256":"f73deb380df41dbcdcf9efe7d142166272c5b8bdd5916ea646fc7a94a02704db","matched":true,"value":[{"reps":5,"targetReps":5,"setResult":"completed","load":70},{"reps":0,"targetReps":1,"setResult":"rep_failure","load":75}]},{"id":"run-browser-1#case-04-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-005","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls/0/negativeActual","valueSha256":"b635fe331525933fcf2998e9a3b5614670bf39c97f76057046393cf62b572308","matched":true,"value":[{"reps":5,"targetReps":5,"setResult":"completed","load":70}]},{"id":"run-browser-1#case-04-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-005","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls/0/restoredActual","valueSha256":"f73deb380df41dbcdcf9efe7d142166272c5b8bdd5916ea646fc7a94a02704db","matched":true,"value":[{"reps":5,"targetReps":5,"setResult":"completed","load":70},{"reps":0,"targetReps":1,"setResult":"rep_failure","load":75}]},{"id":"run-browser-1#case-04-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-005","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-04-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-005","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-04-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-005","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-04-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-005","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-04-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-04-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/quality/cleanup/resources","valueSha256":"0d4e6f09d050103aaff26c9d3a8aac26a39d6c7959eb8e31991f9b0305e8fe65","matched":true,"value":[{"id":"control-case-005-zero-rep-failure-disappears-from-history","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":92}]},{"id":"run-browser-1#case-04-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-04-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-04-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-04-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-04-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-04-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-04-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-04-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-04-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/startedAt","valueSha256":"8038ac56040a33f7f913cb9b168b19040dd789f599eccb8fdb447f8bc1913a4f","matched":true,"value":"2026-09-09T20:03:18.925Z"},{"id":"run-browser-1#case-04-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/finishedAt","valueSha256":"839670747f18ec973b9a983532d14c227840f59a4a269520eb2f0c14883a1f50","matched":true,"value":"2026-09-09T20:03:23.647Z"},{"id":"run-browser-1#case-04-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-04-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-04-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-005","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-04-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/pages/0/pageClosed","valueSha256":"d2c2f402a1e8cdd067393a2da17ba4617df4f44295566d8af8b3e314449cb780","matched":true,"value":{"sequence":124,"pendingRequestIds":[]}},{"id":"run-browser-1#case-04-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/pages/0/routeCleanup","valueSha256":"6c0f0f04f8b1caf16646f519e3b7c869f4db0a774ea8b083f2264000d4d2c670","matched":true,"value":[{"startedSequence":122,"status":"completed","completedSequence":123}]},{"id":"run-browser-1#case-04-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/pages/0/observerDisposal","valueSha256":"064707bcde3e9d766959aa7307073274b6da4063ee4534d9d5de5d18e9bcdbc1","matched":true,"value":{"status":"completed","closeSequence":124,"startedSequence":125,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":126}},{"id":"run-browser-1#case-04-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-04-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-005","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/3/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-05-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-006","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"c89fe5b7a007332d70f5e983d19b73c176c33eb478cff948466163aeff9e3016","matched":true,"value":5525},{"id":"run-browser-1#case-05-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-006","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/checkpoints","valueSha256":"24d0bf71eb57f94a394aefe9105af1758c4595075599728714ff68f99de608ad","matched":true,"value":[{"id":"persisted-two-page-records","passed":true,"assertions":43},{"id":"rendered-growth-chart","passed":true,"assertions":6},{"id":"reload-growth-chart","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-05-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-006","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-05-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-006","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-05-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-006","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-05-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-006","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-05-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-006","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/checkpoints","valueSha256":"24d0bf71eb57f94a394aefe9105af1758c4595075599728714ff68f99de608ad","matched":true,"value":[{"id":"persisted-two-page-records","passed":true,"assertions":43},{"id":"rendered-growth-chart","passed":true,"assertions":6},{"id":"reload-growth-chart","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-05-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-05-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-006","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/completion","valueSha256":"bef661a6ad51b0ef27ef37840c1c4c4205b69fb0bacee0ccaf57869cfd336c60","matched":true,"value":{"caseId":"CASE-006","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"postgresql-readback":1,"authenticated-api-rpc":1,"frontend-state":1,"rendered-user-journey":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-05-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-006","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls","valueSha256":"d9e44bee2169b1ce1c5c11d06ef4f0043bf67e6aeaeca11726eb092ba7cbd7b3","matched":true,"value":[{"id":"case-006-pagination-repeats-a-first-page-record","description":"첫32개와 뒤4개를 합치면 중복 없는36개 실제 기록을 모두 읽어야 한다.","boundary":"http-response","status":"passed","expected":36,"comparator":{"kind":"deepEqual"},"normalActual":36,"normal":{"matched":true},"negativeActual":35,"negative":{"matched":false,"applied":{"count":1,"method":"POST","path":"/rest/v1/rpc/get_exercise_pr_records"}},"restoredActual":36,"restored":{"matched":true},"durationMs":36}]},{"id":"run-browser-1#case-05-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-006","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls/0/normalActual","valueSha256":"76a50887d8f1c2e9301755428990ad81479ee21c25b43215cf524541e0503269","matched":true,"value":36},{"id":"run-browser-1#case-05-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-006","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls/0/negativeActual","valueSha256":"9f14025af0065b30e47e23ebb3b491d39ae8ed17d33739e5ff3827ffb3634953","matched":true,"value":35},{"id":"run-browser-1#case-05-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-006","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls/0/restoredActual","valueSha256":"76a50887d8f1c2e9301755428990ad81479ee21c25b43215cf524541e0503269","matched":true,"value":36},{"id":"run-browser-1#case-05-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-006","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-05-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-006","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-05-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-006","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-05-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-006","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-05-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-05-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/quality/cleanup/resources","valueSha256":"1fac06442d0d50c10cad1b72ec16c71bbff529b97b17f7d419ef911e36d643da","matched":true,"value":[{"id":"control-case-006-pagination-repeats-a-first-page-record","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":69}]},{"id":"run-browser-1#case-05-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-05-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-05-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-05-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-05-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-05-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-05-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-05-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-05-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/startedAt","valueSha256":"6ff2582e18379552abadf354061adbf144eecf4092545ef5ef3240c3cd1151a1","matched":true,"value":"2026-09-09T20:03:23.817Z"},{"id":"run-browser-1#case-05-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/finishedAt","valueSha256":"ca8befd5760bdcc1efbfee43c5e0bf9bc62867e305da7cb049f448a0e655e460","matched":true,"value":"2026-09-09T20:03:29.252Z"},{"id":"run-browser-1#case-05-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-05-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-05-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-006","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-05-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/pages/0/pageClosed","valueSha256":"e9aee8fd258679a36924d4f0d5a015bdb046bf58156d25a01975ac23bfad28c0","matched":true,"value":{"sequence":128,"pendingRequestIds":[]}},{"id":"run-browser-1#case-05-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/pages/0/routeCleanup","valueSha256":"bc4ddfdc62f8a549e041ca96d050c007f65d353bdc2dbbe8d6a9a112c371bf70","matched":true,"value":[{"startedSequence":126,"status":"completed","completedSequence":127}]},{"id":"run-browser-1#case-05-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/pages/0/observerDisposal","valueSha256":"4e56a7d94e481190ab5911374c8de2eb239e9b494d1e003a67c764e58c86fdeb","matched":true,"value":{"status":"completed","closeSequence":128,"startedSequence":129,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":130}},{"id":"run-browser-1#case-05-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-05-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-006","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/4/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-007","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/5/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"96ab6152cb421b4d4012a4903c19004608a342a5f7c6671a7828b8ad8d5b9489","matched":true,"value":5734},{"id":"run-browser-1#case-06-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-007","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/checkpoints","valueSha256":"b1b2ae33cd23ef9caca4bfdd4af52047d76ebf1f6d89d2922dd28409ada612e5","matched":true,"value":[{"id":"isolated-predelete-state","passed":true,"assertions":24},{"id":"auth-delete-cascade","passed":true,"assertions":18},{"id":"control-render-reentry","passed":true,"assertions":7},{"id":"journey-completion","passed":true,"assertions":24}]},{"id":"run-browser-1#case-06-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-007","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-007","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-007","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-007","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-007","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/checkpoints","valueSha256":"b1b2ae33cd23ef9caca4bfdd4af52047d76ebf1f6d89d2922dd28409ada612e5","matched":true,"value":[{"id":"isolated-predelete-state","passed":true,"assertions":24},{"id":"auth-delete-cascade","passed":true,"assertions":18},{"id":"control-render-reentry","passed":true,"assertions":7},{"id":"journey-completion","passed":true,"assertions":24}]},{"id":"run-browser-1#case-06-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-007","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/completion","valueSha256":"25333d1e2c6f82bab01ed203fb9a5b1ffdcc0410cd86a4d9f7f18dc3b8927160","matched":true,"value":{"caseId":"CASE-007","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":1,"authenticated-api-rpc":2,"postgresql-readback":2,"rendered-user-journey":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-06-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-007","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls","valueSha256":"f2af6f7b233b79db95ed6e64f363bd70e949dbb5a297f97251ec10ec93a0b115","matched":true,"value":[{"id":"case-007-deleted-owner-leaves-a-session-row","description":"Auth 사용자 삭제 후 해당 owner의 원본 session과 자식 그래프가 남지 않고 control 사용자 데이터는 유지되어야 한다.","boundary":"http-response","status":"passed","expected":[[],[],[],[],[],[],[]],"comparator":{"kind":"deepEqual"},"normalActual":[[],[],[],[],[],[],[]],"normal":{"matched":true},"negativeActual":[[],[{"id":"eb95207f-4721-4fc6-9020-6ac3e33d6c01"}],[],[],[],[],[]],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/session"}},"restoredActual":[[],[],[],[],[],[],[]],"restored":{"matched":true},"durationMs":31}]},{"id":"run-browser-1#case-06-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-007","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls/0/normalActual","valueSha256":"00e149988c6d9b583355eaac4ee9f9a95b1794b4e5b889f19d75312769656cb3","matched":true,"value":[[],[],[],[],[],[],[]]},{"id":"run-browser-1#case-06-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-007","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls/0/negativeActual","valueSha256":"e37ef96abe2cdbb36803e808e4dc22097cfe7ed53798340227872a473112772b","matched":true,"value":[[],[{"id":"eb95207f-4721-4fc6-9020-6ac3e33d6c01"}],[],[],[],[],[]]},{"id":"run-browser-1#case-06-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-007","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls/0/restoredActual","valueSha256":"00e149988c6d9b583355eaac4ee9f9a95b1794b4e5b889f19d75312769656cb3","matched":true,"value":[[],[],[],[],[],[],[]]},{"id":"run-browser-1#case-06-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-007","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-06-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-007","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-06-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-007","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-06-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-007","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-06-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-06-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/quality/cleanup/resources","valueSha256":"c03a6b6bb3a02caf0dd3c469a360d05476e95cddf0faf031471072f90ba76d33","matched":true,"value":[{"id":"control-case-007-deleted-owner-leaves-a-session-row","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":3},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":100}]},{"id":"run-browser-1#case-06-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-06-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-06-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-06-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-06-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-06-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-06-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-06-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-06-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/startedAt","valueSha256":"bdaac6b53dad3747bb3a7cd3f5d28d2d473a49e8ed3fda425be9762e0c86ca74","matched":true,"value":"2026-09-09T20:03:29.490Z"},{"id":"run-browser-1#case-06-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/finishedAt","valueSha256":"cde9a63fbc9c1324e9a3eef3edda565d1bd469c63af03f70eb03afbd5eabc4cb","matched":true,"value":"2026-09-09T20:03:35.109Z"},{"id":"run-browser-1#case-06-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-06-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-06-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-007","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-06-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/0/pageClosed","valueSha256":"67f9d7c5b3154a311e9321f36fe251620cf11902d124e82f2f98a11c60848400","matched":true,"value":{"sequence":55,"pendingRequestIds":[]}},{"id":"run-browser-1#case-06-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/0/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/0/observerDisposal","valueSha256":"daca464365ff10d6a082b32e30ac4c0d6376d6137582eba3b6fbab49430e5b66","matched":true,"value":{"status":"completed","closeSequence":55,"startedSequence":56,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":57}},{"id":"run-browser-1#case-06-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/1/pageClosed","valueSha256":"d1d001bfbcd44018363f469933fecdec4f96de3ec3e645afa062bd3380ba18de","matched":true,"value":{"sequence":113,"pendingRequestIds":[]}},{"id":"run-browser-1#case-06-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/1/routeCleanup","valueSha256":"8882fd6d98379dfc254d7e6fa784926f4cdb3b4ff4e6966c071c45edf704b0d7","matched":true,"value":[{"startedSequence":111,"status":"completed","completedSequence":112}]},{"id":"run-browser-1#case-06-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/1/observerDisposal","valueSha256":"051c4afa305f8fbb66c9ce1a56bbf2e71405f8a7d059a00040ff484e826e607a","matched":true,"value":{"status":"completed","closeSequence":113,"startedSequence":114,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":115}},{"id":"run-browser-1#case-06-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-06-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-007","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/5/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-07-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-008","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/6/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"c84344c3f5441a6b02fc44c34244b9749c016f6a741499f3204def0f523a6a36","matched":true,"value":4713},{"id":"run-browser-1#case-07-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-008","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/checkpoints","valueSha256":"d9c03227766efdac59d0fbd3fb8bdc8d09785abca0fac32163333d4dabbd7036","matched":true,"value":[{"id":"persisted-annual-date-set","passed":true,"assertions":17},{"id":"rendered-count-and-grass","passed":true,"assertions":18},{"id":"reload-count-and-grass","passed":true,"assertions":15},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-07-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-008","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-07-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-008","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-07-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-008","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-07-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-008","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-07-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-008","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/checkpoints","valueSha256":"d9c03227766efdac59d0fbd3fb8bdc8d09785abca0fac32163333d4dabbd7036","matched":true,"value":[{"id":"persisted-annual-date-set","passed":true,"assertions":17},{"id":"rendered-count-and-grass","passed":true,"assertions":18},{"id":"reload-count-and-grass","passed":true,"assertions":15},{"id":"journey-completion","passed":true,"assertions":8}]},{"id":"run-browser-1#case-07-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-07-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-008","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/completion","valueSha256":"ec19f8667d56183234a2f82bb499e799b9e59dc54502ad1062d204f71f17b76a","matched":true,"value":{"caseId":"CASE-008","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"postgresql-readback":1,"authenticated-api-rpc":1,"frontend-state":1,"rendered-user-journey":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-07-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-008","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls","valueSha256":"9d1d7fb6604c17019d0983a24e0d9de1ec36cd172171057fc7fd5eebefced1e1","matched":true,"value":[{"id":"case-008-zero-volume-day-not-colored","description":"0kg 운동일을 포함해 원본 완료 session과 정확히 같은 날짜들만 연간 잔디에서 활성화되어야 한다.","boundary":"dom","status":"passed","expected":["2025-12-29","2025-12-30","2025-12-31"],"comparator":{"kind":"deepEqual"},"normalActual":["2025-12-29","2025-12-30","2025-12-31"],"normal":{"matched":true},"negativeActual":["2025-12-30","2025-12-31"],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":["2025-12-29","2025-12-30","2025-12-31"],"restored":{"matched":true},"durationMs":41}]},{"id":"run-browser-1#case-07-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-008","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls/0/normalActual","valueSha256":"ebe7db7175285c90c8ae9984880ed361596c60ff9f048b0594e87f4585246f3e","matched":true,"value":["2025-12-29","2025-12-30","2025-12-31"]},{"id":"run-browser-1#case-07-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-008","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls/0/negativeActual","valueSha256":"94fceb0cafd00217524254ea2bb1d4f669a8dd0ebe12adc8b89fe204402d1a04","matched":true,"value":["2025-12-30","2025-12-31"]},{"id":"run-browser-1#case-07-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-008","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls/0/restoredActual","valueSha256":"ebe7db7175285c90c8ae9984880ed361596c60ff9f048b0594e87f4585246f3e","matched":true,"value":["2025-12-29","2025-12-30","2025-12-31"]},{"id":"run-browser-1#case-07-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-008","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-07-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-008","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-07-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-008","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-07-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-008","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-07-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-07-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/quality/cleanup/resources","valueSha256":"6ae24f11aaebc1747b5624c808d565c9030a4966937e02034ea32ec72e69df5b","matched":true,"value":[{"id":"control-case-008-zero-volume-day-not-colored","status":"passed","settled":true,"durationMs":11},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":86}]},{"id":"run-browser-1#case-07-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/ownedPageListeners","valueSha256":"d98c7ec4ef802d2ad13881f939c501c386ef25a53abe6c3dbf2f8a1783229638","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-07-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-07-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-07-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-07-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-07-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-07-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-07-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-07-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/startedAt","valueSha256":"9ef2834505273fe3c3ad52189927a2e0c2e25a5ed5aad5f1b929d39b316a2d76","matched":true,"value":"2026-09-09T20:03:35.397Z"},{"id":"run-browser-1#case-07-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/finishedAt","valueSha256":"78c0940cfa6ec81554928e1abdd60fb5116c8f7b30ec1a03795f88ce7de09fad","matched":true,"value":"2026-09-09T20:03:40.035Z"},{"id":"run-browser-1#case-07-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-07-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-07-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-008","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-07-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/pages/0/pageClosed","valueSha256":"03384de8b92e948c8b680f3350a225c7add0ee9f545122302b714dd98d5b4c12","matched":true,"value":{"sequence":127,"pendingRequestIds":[]}},{"id":"run-browser-1#case-07-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/pages/0/routeCleanup","valueSha256":"0f0b53899d96a359098be366d2ff2a334fae4dbc956214aab6d8f00103bbbb6d","matched":true,"value":[{"startedSequence":125,"status":"completed","completedSequence":126}]},{"id":"run-browser-1#case-07-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/pages/0/observerDisposal","valueSha256":"1425af1b79529bc5e3b5d81fa8494a46e6a410db1533cf51d71503dfefd1516d","matched":true,"value":{"status":"completed","closeSequence":127,"startedSequence":128,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":129}},{"id":"run-browser-1#case-07-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-07-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-008","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/6/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-009","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/7/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"d31b04b46bdb26afe654ff6cbed3dab17aece4cce466bd3d40b51061793cc8b4","matched":true,"value":3160},{"id":"run-browser-1#case-08-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-009","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/checkpoints","valueSha256":"3d39b274081cbc882bebf107f29cf79138b427efdd2e446ccc0612d1c72932c0","matched":true,"value":[{"id":"mobile-onboarding-submit","passed":true,"assertions":7},{"id":"profile-storage-readback","passed":true,"assertions":29},{"id":"fresh-auth-reload","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-1#case-08-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-009","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-009","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-009","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-009","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-009","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/checkpoints","valueSha256":"3d39b274081cbc882bebf107f29cf79138b427efdd2e446ccc0612d1c72932c0","matched":true,"value":[{"id":"mobile-onboarding-submit","passed":true,"assertions":7},{"id":"profile-storage-readback","passed":true,"assertions":29},{"id":"fresh-auth-reload","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-1#case-08-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-009","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/completion","valueSha256":"a62e4565104c37aae1ce38909b0dd784e911659f6c9587200c631d9fb452568c","matched":true,"value":{"caseId":"CASE-009","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":1,"rendered-user-journey":1,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-08-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-009","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls","valueSha256":"af26a5dc0f10d08a3784c118917166a6166f10718e19662aee7fbf370789fe54","matched":true,"value":[{"id":"case-009-completed-onboarding-shown-again","description":"입력 프로필을 완료 저장한 사용자는 새 인증 세션과 reload 뒤 온보딩을 반복하지 않아야 한다.","boundary":"dom","status":"passed","expected":0,"comparator":{"kind":"deepEqual"},"normalActual":0,"normal":{"matched":true},"negativeActual":1,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":0,"restored":{"matched":true},"durationMs":72}]},{"id":"run-browser-1#case-08-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-009","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls/0/normalActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-08-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-009","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls/0/negativeActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-08-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-009","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls/0/restoredActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-08-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-009","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-08-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-009","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-08-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-009","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-08-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-009","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-08-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-08-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/quality/cleanup/resources","valueSha256":"ea0e8910cf26f2b6a765720ac9557ddc5bb2de3003831393939861068d9520a0","matched":true,"value":[{"id":"control-case-009-completed-onboarding-shown-again","status":"passed","settled":true,"durationMs":47},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":4},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":114}]},{"id":"run-browser-1#case-08-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-08-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-08-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-08-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-08-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-08-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-08-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-08-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-08-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/startedAt","valueSha256":"c77bbb52d93b14c2c708a4b2f101462a7415182f46710afe6f41db379cbd70e8","matched":true,"value":"2026-09-09T20:03:40.217Z"},{"id":"run-browser-1#case-08-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/finishedAt","valueSha256":"0c1ae20dcc14411cdd5c5cca16e176cfa0636650b8149ee78c9bd390fe26fcca","matched":true,"value":"2026-09-09T20:03:43.280Z"},{"id":"run-browser-1#case-08-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-08-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-08-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-009","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-08-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/0/pageClosed","valueSha256":"19eccfceef6dfa2cb620e11bb559a1680e77c19c098b8e84c7802b1e97592380","matched":true,"value":{"sequence":77,"pendingRequestIds":["25"]}},{"id":"run-browser-1#case-08-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/0/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/0/observerDisposal","valueSha256":"1f9fb01a0bddd56a66c82e4eac178fa27c642610469d6f28de4099a06673d1fb","matched":true,"value":{"status":"completed","closeSequence":77,"startedSequence":78,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":79}},{"id":"run-browser-1#case-08-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/0/currentPending","valueSha256":"d3fc45e172f79b21f889e4d2c8d30f2d2dd49b50ed0c957443ffc9cd643ecc55","matched":true,"value":["25"]},{"id":"run-browser-1#case-08-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-08-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/1/pageClosed","valueSha256":"9bcbcb4c3366a9d195f9100aeaf4d3ccf9448360fdfa6e8fc19bbfb505c71250","matched":true,"value":{"sequence":112,"pendingRequestIds":["33"]}},{"id":"run-browser-1#case-08-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/1/routeCleanup","valueSha256":"7ecc91fc31e138487e060a62ef7cfb7674eb86b728c3ac34d69e5a7dc8e793d3","matched":true,"value":[{"startedSequence":102,"status":"completed","completedSequence":103}]},{"id":"run-browser-1#case-08-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/1/observerDisposal","valueSha256":"87c4bb29e1d25a37a0df15a35c497512dce8d793acb1d795500fc7a1b15e466a","matched":true,"value":{"status":"completed","closeSequence":112,"startedSequence":113,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":114}},{"id":"run-browser-1#case-08-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/1/currentPending","valueSha256":"0327562ac0e86ecba365bd4a19df8d4fdc735811c34d8825f4b6c83f6d2fe2dd","matched":true,"value":["33"]},{"id":"run-browser-1#case-08-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-009","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/7/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-09-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-010","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/8/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"29923c8dc8abaca7ea7e4a08adefe252c74784a33ea0544a105c58dbb6c78607","matched":true,"value":2822},{"id":"run-browser-1#case-09-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-010","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/checkpoints","valueSha256":"20bd319a74a5725e13c1ca6aebb9e1d5f811ab5e7140bf69fca35080ae215911","matched":true,"value":[{"id":"authenticated-state-before-recovery","passed":true,"assertions":6},{"id":"single-automatic-reload","passed":true,"assertions":18},{"id":"recovered-feed-route","passed":true,"assertions":5},{"id":"journey-completion","passed":true,"assertions":5}]},{"id":"run-browser-1#case-09-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-010","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-09-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-010","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-09-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-010","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-09-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-010","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-09-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-010","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/checkpoints","valueSha256":"20bd319a74a5725e13c1ca6aebb9e1d5f811ab5e7140bf69fca35080ae215911","matched":true,"value":[{"id":"authenticated-state-before-recovery","passed":true,"assertions":6},{"id":"single-automatic-reload","passed":true,"assertions":18},{"id":"recovered-feed-route","passed":true,"assertions":5},{"id":"journey-completion","passed":true,"assertions":5}]},{"id":"run-browser-1#case-09-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-09-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-010","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/completion","valueSha256":"af287fdd804e0373f5aa312d48e7dd3bdfb529d6218f66c9d63185f762f6403b","matched":true,"value":{"caseId":"CASE-010","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"frontend-state":1,"rendered-user-journey":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-09-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-010","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls","valueSha256":"9967d798cb296f8bc3b2afbc4dbe1d562435b010fdbd92e58949d90805cf4a94","matched":true,"value":[{"id":"case-010-single-reload-budget-guard-lost","description":"첫 자동 재로드 이후 같은 탭의 재로드 예산을 소비했다는 영속 guard가 남아야 한다.","boundary":"session-storage","status":"passed","expected":{"present":true,"contractVersion":1},"comparator":{"kind":"deepEqual"},"normalActual":{"present":true,"contractVersion":1},"normal":{"matched":true},"negativeActual":{"present":false,"contractVersion":null},"negative":{"matched":false,"applied":{"count":1}},"restoredActual":{"present":true,"contractVersion":1},"restored":{"matched":true},"durationMs":20}]},{"id":"run-browser-1#case-09-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-010","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls/0/normalActual","valueSha256":"0b1a59983a2d92ed4ff78c1ef47e5631a7756822c10ccd53c70281dad345519a","matched":true,"value":{"present":true,"contractVersion":1}},{"id":"run-browser-1#case-09-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-010","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls/0/negativeActual","valueSha256":"7e791733901f78f7d7a564fc2e752a99919640c66724309526747c20dd97fa1d","matched":true,"value":{"present":false,"contractVersion":null}},{"id":"run-browser-1#case-09-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-010","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls/0/restoredActual","valueSha256":"0b1a59983a2d92ed4ff78c1ef47e5631a7756822c10ccd53c70281dad345519a","matched":true,"value":{"present":true,"contractVersion":1}},{"id":"run-browser-1#case-09-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-010","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-09-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-010","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-09-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-010","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-09-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-010","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-09-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-09-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/quality/cleanup/resources","valueSha256":"612abf00212faa3dc7bff87cf0521430b223d63cacc426034755db6586217bf4","matched":true,"value":[{"id":"control-case-010-single-reload-budget-guard-lost","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":108}]},{"id":"run-browser-1#case-09-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/ownedPageListeners","valueSha256":"d98c7ec4ef802d2ad13881f939c501c386ef25a53abe6c3dbf2f8a1783229638","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-09-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-09-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-09-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-09-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-09-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-09-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-09-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-09-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/startedAt","valueSha256":"d3e0051c765764cfdcdddd60f5ec78c4161a2795962f732ad22db0a2ec86bab3","matched":true,"value":"2026-09-09T20:03:43.507Z"},{"id":"run-browser-1#case-09-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/finishedAt","valueSha256":"9999e2e8e79b76f5ff432449c7a33ba8356153767eb8b08a40e5bd4b161f8f70","matched":true,"value":"2026-09-09T20:03:46.215Z"},{"id":"run-browser-1#case-09-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-09-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-09-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-010","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-09-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/pages/0/pageClosed","valueSha256":"f701c8fee17e4164e5eb960cfc03f7cc2d7a7779f5807c8af93fde1adb8da246","matched":true,"value":{"sequence":121,"pendingRequestIds":[]}},{"id":"run-browser-1#case-09-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/pages/0/routeCleanup","valueSha256":"31d9004732084e6ddfed119322b5fd72e1edee7c3fda7637198c7ac666b5dd16","matched":true,"value":[{"startedSequence":119,"status":"completed","completedSequence":120}]},{"id":"run-browser-1#case-09-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/pages/0/observerDisposal","valueSha256":"b9df4add6ae4d60cc95fa6b897698483b9c02c791af68d1f0c895815309bad1f","matched":true,"value":{"status":"completed","closeSequence":121,"startedSequence":122,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":123}},{"id":"run-browser-1#case-09-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-09-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-010","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/8/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-011","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/9/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"2213a8eb98f0b189b390ddb9bbb6683c9026a7d45af68a4d429769eecc41ae66","matched":true,"value":14142},{"id":"run-browser-1#case-10-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-011","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/checkpoints","valueSha256":"f2e53d6cdc509ce7fdc20922b5ddc35b4189ca3d218b196a44961ecea6a693e6","matched":true,"value":[{"id":"untouched-record-discard","passed":true,"assertions":4},{"id":"legacy-resume-close","passed":true,"assertions":7},{"id":"no-server-write","passed":true,"assertions":3},{"id":"authored-draft-persisted","passed":true,"assertions":19},{"id":"authored-draft-page-reentry","passed":true,"assertions":19},{"id":"resumed-workout-committed","passed":true,"assertions":42},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-10-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-011","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-011","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-011","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-011","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-011","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/checkpoints","valueSha256":"f2e53d6cdc509ce7fdc20922b5ddc35b4189ca3d218b196a44961ecea6a693e6","matched":true,"value":[{"id":"untouched-record-discard","passed":true,"assertions":4},{"id":"legacy-resume-close","passed":true,"assertions":7},{"id":"no-server-write","passed":true,"assertions":3},{"id":"authored-draft-persisted","passed":true,"assertions":19},{"id":"authored-draft-page-reentry","passed":true,"assertions":19},{"id":"resumed-workout-committed","passed":true,"assertions":42},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-10-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-011","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/completion","valueSha256":"378040af83eccbaf1a1c6bef03799e5e02253234de6c2613599a8f850a0768b1","matched":true,"value":{"caseId":"CASE-011","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":4,"rendered-user-journey":4,"reload-reentry":3,"authenticated-api-rpc":2,"postgresql-readback":2,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-1#case-10-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-011","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls","valueSha256":"8d1bbd6336606ff80835ec3c30c0d70a4d8aa84401719a70da9487ef9564a388","matched":true,"value":[{"id":"case-011-discarded-title-only-draft-survives","description":"legacy 제목뿐인 초안을 resume 후 닫으면 owner IndexedDB row가 없어야 한다.","boundary":"indexeddb","status":"passed","expected":null,"comparator":{"kind":"deepEqual"},"normalActual":null,"normal":{"matched":true},"negativeActual":{"version":4,"savedAt":"2026-09-09T20:03:49.319Z","expiresAt":"2026-09-16T20:03:49.319Z","userId":"3cc15d68-409b-4a1e-aa65-4924648692d8","date":"2026-09-10","operationId":"53ca083a-2a61-480b-80d5-a395e6bed102","sourceRef":"workout:53ca083a-2a61-480b-80d5-a395e6bed102","liveTitle":"운동 세션","editorIntent":{"kind":"active-workout","mode":"fresh"},"snapshot":{"operationId":"53ca083a-2a61-480b-80d5-a395e6bed102","sourceRef":"workout:53ca083a-2a61-480b-80d5-a395e6bed102","originTab":"home","step":"start","draft":{"title":"운동 세션","date":"2026-09-10","condition":"보통","preNote":"","postCondition":"","note":"","startTime":"18:30","endTime":"","duration":"","bodyWeight":null,"sessionIntent":"training","exercises":[]},"activeExerciseId":null,"activeSetIndex":null,"restTimer":null,"finish":{"endTime":"","postCondition":"","note":""}}},"negative":{"matched":false,"applied":{"count":1}},"restoredActual":null,"restored":{"matched":true},"durationMs":14}]},{"id":"run-browser-1#case-10-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-011","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls/0/normalActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-1#case-10-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-011","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls/0/negativeActual","valueSha256":"2e5abbe7d130f514007609bebde9e9e2e8efed5fe3094e0c5ad5c806457b84c5","matched":true,"value":{"version":4,"savedAt":"2026-09-09T20:03:49.319Z","expiresAt":"2026-09-16T20:03:49.319Z","userId":"3cc15d68-409b-4a1e-aa65-4924648692d8","date":"2026-09-10","operationId":"53ca083a-2a61-480b-80d5-a395e6bed102","sourceRef":"workout:53ca083a-2a61-480b-80d5-a395e6bed102","liveTitle":"운동 세션","editorIntent":{"kind":"active-workout","mode":"fresh"},"snapshot":{"operationId":"53ca083a-2a61-480b-80d5-a395e6bed102","sourceRef":"workout:53ca083a-2a61-480b-80d5-a395e6bed102","originTab":"home","step":"start","draft":{"title":"운동 세션","date":"2026-09-10","condition":"보통","preNote":"","postCondition":"","note":"","startTime":"18:30","endTime":"","duration":"","bodyWeight":null,"sessionIntent":"training","exercises":[]},"activeExerciseId":null,"activeSetIndex":null,"restTimer":null,"finish":{"endTime":"","postCondition":"","note":""}}}},{"id":"run-browser-1#case-10-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-011","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls/0/restoredActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-1#case-10-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-011","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-10-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-011","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-10-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-011","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-10-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-011","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-10-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-10-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/quality/cleanup/resources","valueSha256":"7daf63e961dbb11529fb8edccd6b3fab0cf99a10707f84b915a4944df8a16746","matched":true,"value":[{"id":"control-case-011-discarded-title-only-draft-survives","status":"passed","settled":true,"durationMs":3},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":5},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":97}]},{"id":"run-browser-1#case-10-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-10-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-10-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-10-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-10-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-10-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-10-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-10-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-10-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/startedAt","valueSha256":"ed6fedd80a085ee302981be9b972e12ed8eee72f6790e319aafbe7c53d61a4da","matched":true,"value":"2026-09-09T20:03:46.443Z"},{"id":"run-browser-1#case-10-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/finishedAt","valueSha256":"ba1c23ae487edc1ba0084a486c58a8dd1138bf8fa0976f1cf31c1463f052bd3c","matched":true,"value":"2026-09-09T20:04:00.498Z"},{"id":"run-browser-1#case-10-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-10-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-10-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-011","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-10-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/0/pageClosed","valueSha256":"48a8808f443ab4b1bf481a7db961be438b5a01132adecc1480f8d6a7ac2c0a39","matched":true,"value":{"sequence":173,"pendingRequestIds":[]}},{"id":"run-browser-1#case-10-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/0/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/0/observerDisposal","valueSha256":"f182bc8ea54287ede2fea21c2cde2eecea66371e3c595f60ab9a333bc7190218","matched":true,"value":{"status":"completed","closeSequence":173,"startedSequence":174,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":175}},{"id":"run-browser-1#case-10-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/1/pageClosed","valueSha256":"c77d0baa282576b932e70cbc5085564d6b641cbcb6771025522c524306192cd1","matched":true,"value":{"sequence":161,"pendingRequestIds":[]}},{"id":"run-browser-1#case-10-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/1/routeCleanup","valueSha256":"f919e29cfe6e06acb02ba2dcfdfcf2afa0d1b136abe069918928e3c2233757ee","matched":true,"value":[{"startedSequence":159,"status":"completed","completedSequence":160}]},{"id":"run-browser-1#case-10-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/1/observerDisposal","valueSha256":"e12e603d39b4161824b3dca2835ac4998e407b9387c82983ed7fbdd01e9ebac1","matched":true,"value":{"status":"completed","closeSequence":161,"startedSequence":162,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":163}},{"id":"run-browser-1#case-10-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-10-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-011","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/9/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-012","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/10/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"4401dfbd4b7faaf470f94888cca5b473f0590e10c3799088be66cef7da7238f5","matched":true,"value":6612},{"id":"run-browser-1#case-11-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-012","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/checkpoints","valueSha256":"794c76ea9599471d4f9b6e510b454c8486fde450086d8e369d3719361e69abd6","matched":true,"value":[{"id":"owner-snapshot-survives-declared-outage","passed":true,"assertions":9},{"id":"third-attempt-recovers-online-home","passed":true,"assertions":9},{"id":"fresh-tab-preserves-owner","passed":true,"assertions":5},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-11-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-012","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-012","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-012","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-012","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/id","valueSha256":"39b3fcb447d1db9e1885f644d4c8708407ca84023de2b151db761b3a2b2e7e93","matched":true,"value":"bootstrap-profile-workspace-503"},{"id":"run-browser-1#case-11-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-1#case-11-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/path","valueSha256":"ffd8cb179d0e6b2aed56af6db6503d0ae553ab53969e67d9e0c8a180ad41f736","matched":true,"value":"/rest/v1/rpc/get_profile_workspace"},{"id":"run-browser-1#case-11-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-1#case-11-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d","matched":true,"value":5},{"id":"run-browser-1#case-11-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-11-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-11-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/expectedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-1#case-11-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/observedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-1#case-11-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/0/id","valueSha256":"1d1735fbc711fadc03751e460c44b07241c8429d034499190be6309d4a4fd065","matched":true,"value":"connectivity-entered-auth-outage"},{"id":"run-browser-1#case-11-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-1#case-11-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-11-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-11-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/1/id","valueSha256":"1e8ee21771ca4d5c8caff14e7a4791b996eda5c38d5443b88ef8271e87c324a5","matched":true,"value":"connectivity-exited-auth-outage"},{"id":"run-browser-1#case-11-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-1#case-11-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-11-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-11-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-012","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/checkpoints","valueSha256":"794c76ea9599471d4f9b6e510b454c8486fde450086d8e369d3719361e69abd6","matched":true,"value":[{"id":"owner-snapshot-survives-declared-outage","passed":true,"assertions":9},{"id":"third-attempt-recovers-online-home","passed":true,"assertions":9},{"id":"fresh-tab-preserves-owner","passed":true,"assertions":5},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-11-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-012","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/completion","valueSha256":"a1bff7460ca369090ee47b7bde9913f917153db1bd3385d5db3b923525c6c07b","matched":true,"value":{"caseId":"CASE-012","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":1,"rendered-user-journey":1,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"bootstrap-profile-workspace-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":null,"attemptWindow":{"first":1,"last":2},"requestCount":5,"requiredAttempts":[1,2],"observedAttempts":[1,2],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"bootstrap-profile-workspace-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56721/rest/v1/rpc/get_profile_workspace"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"bootstrap-profile-workspace-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":"","attempt":2,"url":"http://127.0.0.1:56721/rest/v1/rpc/get_profile_workspace"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-connectivity-lifecycle","owner":"case-context-user","expectedCount":2,"observedCount":2,"records":[{"sequence":1,"id":"connectivity-entered-auth-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:auth-outage","clientEventId":"5b041723-7590-4ac9-9695-4d7e5b299c7c","operationId":"tab:26d952bd-82e3-45f2-8e1f-4f08ab790102:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-exited-auth-outage","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:auth-outage","clientEventId":"c271db15-c9e4-4b62-9f61-15c01fdf6bb5","operationId":"tab:379a5c0c-b57c-4587-82f9-8fd604d65a59:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-1#case-11-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-012","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls","valueSha256":"368cf28f12c11f65d1f47f622e50eb3ae16e59743bb0b1d7c6b55bceab5276d9","matched":true,"value":[{"id":"case-012-boot-outage-deletes-owner-snapshot","description":"두 bootstrap503 동안 기존 owner의 최소 snapshot이 유지되어야 한다.","boundary":"indexeddb","status":"passed","expected":"a1a05f39-350e-4f8d-b8d9-d445b9f7b7ea","comparator":{"kind":"deepEqual"},"normalActual":"a1a05f39-350e-4f8d-b8d9-d445b9f7b7ea","normal":{"matched":true},"negativeActual":null,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":"a1a05f39-350e-4f8d-b8d9-d445b9f7b7ea","restored":{"matched":true},"durationMs":40}]},{"id":"run-browser-1#case-11-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-012","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls/0/normalActual","valueSha256":"1f5792bc10e85937901bc2919cfd6bba5856fbb6f1bf88f9b2ac5c22acd0480a","matched":true,"value":"a1a05f39-350e-4f8d-b8d9-d445b9f7b7ea"},{"id":"run-browser-1#case-11-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-012","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls/0/negativeActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-1#case-11-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-012","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls/0/restoredActual","valueSha256":"1f5792bc10e85937901bc2919cfd6bba5856fbb6f1bf88f9b2ac5c22acd0480a","matched":true,"value":"a1a05f39-350e-4f8d-b8d9-d445b9f7b7ea"},{"id":"run-browser-1#case-11-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-012","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-11-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-012","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-11-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-012","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-11-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-012","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-11-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-11-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/quality/cleanup/resources","valueSha256":"264100003f82327d301321e1b2e3a7c712fa2d2e87cf2da5f68100149bc3b3d5","matched":true,"value":[{"id":"case-012-workspace-route","status":"passed","settled":true,"durationMs":2},{"id":"control-case-012-boot-outage-deletes-owner-snapshot","status":"passed","settled":true,"durationMs":13},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":89},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":151},{"id":"observed-page-3","status":"passed","settled":true,"durationMs":94}]},{"id":"run-browser-1#case-11-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/ownedPageListeners","valueSha256":"5610b72c907a43901ac99e19f96fa007ccba445bc2dc6cce8953cf7a83b4f86a","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-11-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-11-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-11-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-11-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-11-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-11-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-11-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-11-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/startedAt","valueSha256":"1d5c26598f0e8f01659f013ae8a15a20ef66c8f5cba1788fe50b505f6ce2a7ff","matched":true,"value":"2026-09-09T20:04:00.809Z"},{"id":"run-browser-1#case-11-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/finishedAt","valueSha256":"1d4f042d0ff256e40b162dbc6be6c144ebfbb8ca813d2c389224b1263acd5887","matched":true,"value":"2026-09-09T20:04:07.337Z"},{"id":"run-browser-1#case-11-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-11-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-11-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-012","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-11-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/0/pageClosed","valueSha256":"42dafdd91f87bca9604312a9b4003f1e5f73849f4928d1bda615274645bf48e1","matched":true,"value":{"sequence":96,"pendingRequestIds":[]}},{"id":"run-browser-1#case-11-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/0/routeCleanup","valueSha256":"b35e04fdb10de18ecb5ec702dd1152338fa1f59b0840e7618685c1f22017c423","matched":true,"value":[{"startedSequence":94,"status":"completed","completedSequence":95}]},{"id":"run-browser-1#case-11-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/0/observerDisposal","valueSha256":"27b75b15a5d8688c4ea4ee9dbb5a5b84ecd9cf9555707d1c78dd106ac1c10378","matched":true,"value":{"status":"completed","closeSequence":96,"startedSequence":97,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":98}},{"id":"run-browser-1#case-11-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/1/pageClosed","valueSha256":"ccd6e9ae7aade9a01e812075c54668e49816fd6eae2e3221abefee822b2176b1","matched":true,"value":{"sequence":75,"pendingRequestIds":[]}},{"id":"run-browser-1#case-11-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/1/routeCleanup","valueSha256":"7506538faea2eecca27211921aad6d23b3cda2dd4ef672962fc14b494e3966c2","matched":true,"value":[{"startedSequence":73,"status":"completed","completedSequence":74}]},{"id":"run-browser-1#case-11-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/1/observerDisposal","valueSha256":"e59f4b4863ef551896e3df87a8ccd7d453b06222d24a1cf93bd11da49ba0eb2b","matched":true,"value":{"status":"completed","closeSequence":75,"startedSequence":76,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":77}},{"id":"run-browser-1#case-11-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-page-2-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/2/pageClosed","valueSha256":"363cae87b24c130a8416e08c1c41e7bb8d6dce433fff117d83918313d3d4b183","matched":true,"value":{"sequence":57,"pendingRequestIds":[]}},{"id":"run-browser-1#case-11-page-2-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/2/routeCleanup","valueSha256":"b59b4e828354e47392dfceee73b7c2251735fcc090cd82642931e37fb1713dbd","matched":true,"value":[{"startedSequence":55,"status":"completed","completedSequence":56}]},{"id":"run-browser-1#case-11-page-2-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/2/observerDisposal","valueSha256":"ea534e9386210d5cd2c3f96bb49f3b700ea138c3af8b0e1355bac0d2d9728f7f","matched":true,"value":{"status":"completed","closeSequence":57,"startedSequence":58,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":59}},{"id":"run-browser-1#case-11-page-2-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/2/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-11-page-2-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-012","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/10/diagnostic/pages/2/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-013","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/11/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"3f092380ea6fcaf2534710b78dc64a354eaf462f057bfb21550bc83e1d4e6769","matched":true,"value":6690},{"id":"run-browser-1#case-12-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-013","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/checkpoints","valueSha256":"04fc230e960d8cce7b4eee07c3a21dca474dbdc9a65c413f296afc258659ab09","matched":true,"value":[{"id":"refreshed-session-survives-jwt-storm","passed":true,"assertions":15},{"id":"third-attempt-recovers-online-home","passed":true,"assertions":9},{"id":"fresh-tab-keeps-refreshed-session","passed":true,"assertions":6},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-12-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-013","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-013","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-013","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-013","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/id","valueSha256":"eb7cf03470d9dbd53c751640208d9d36cde9cd4703847a96968b55e0c88befa7","matched":true,"value":"token-refreshed-profile-workspace-401"},{"id":"run-browser-1#case-12-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-1#case-12-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/path","valueSha256":"ffd8cb179d0e6b2aed56af6db6503d0ae553ab53969e67d9e0c8a180ad41f736","matched":true,"value":"/rest/v1/rpc/get_profile_workspace"},{"id":"run-browser-1#case-12-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/status","valueSha256":"dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85","matched":true,"value":401},{"id":"run-browser-1#case-12-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d","matched":true,"value":5},{"id":"run-browser-1#case-12-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-12-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-12-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/expectedCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-1#case-12-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/observedCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-1#case-12-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/0/id","valueSha256":"1d1735fbc711fadc03751e460c44b07241c8429d034499190be6309d4a4fd065","matched":true,"value":"connectivity-entered-auth-outage"},{"id":"run-browser-1#case-12-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-1#case-12-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/1/id","valueSha256":"f717629d1b691be88823c414a29bd41b096a67fcf04a852dc387b8e848b42461","matched":true,"value":"connectivity-reason-auth-outage-to-jwt-rejection"},{"id":"run-browser-1#case-12-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"f11477c145d9baad0bedc2e0c687434c0dd07ed62496f117fb6fdac52adc9c02","matched":true,"value":"connectivity-reason-changed"},{"id":"run-browser-1#case-12-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-required-event-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/2/id","valueSha256":"601e2a54b0e3d62e0afb90aaa4da56d0c85b3e43c307316020a4d074cad3528b","matched":true,"value":"connectivity-exited-jwt-rejection"},{"id":"run-browser-1#case-12-required-event-2-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/2/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-1#case-12-required-event-2-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/2/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-required-event-2-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion/requiredObservationEvidence/records/2/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-013","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/checkpoints","valueSha256":"04fc230e960d8cce7b4eee07c3a21dca474dbdc9a65c413f296afc258659ab09","matched":true,"value":[{"id":"refreshed-session-survives-jwt-storm","passed":true,"assertions":15},{"id":"third-attempt-recovers-online-home","passed":true,"assertions":9},{"id":"fresh-tab-keeps-refreshed-session","passed":true,"assertions":6},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-12-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-013","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/completion","valueSha256":"534069e02477b44cb21d1649c494216c75dade8ffc6d11ddca22df9be76dd28a","matched":true,"value":{"caseId":"CASE-013","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":1,"rendered-user-journey":1,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"token-refreshed-profile-workspace-401","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":401,"failureText":null,"attemptWindow":{"first":1,"last":2},"requestCount":5,"requiredAttempts":[1,2],"observedAttempts":[1,2],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 401 (Unauthorized)","id":"token-refreshed-profile-workspace-401","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":401,"failureText":"","attempt":1,"url":"http://127.0.0.1:56721/rest/v1/rpc/get_profile_workspace"},{"consoleText":"Failed to load resource: the server responded with a status of 401 (Unauthorized)","id":"token-refreshed-profile-workspace-401","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":401,"failureText":"","attempt":2,"url":"http://127.0.0.1:56721/rest/v1/rpc/get_profile_workspace"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-connectivity-lifecycle","owner":"case-context-user","expectedCount":3,"observedCount":3,"records":[{"sequence":1,"id":"connectivity-entered-auth-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:auth-outage","clientEventId":"5048eb97-621c-4139-aaf1-66d07afa6e0c","operationId":"tab:3c7df346-fc2c-40f1-9bee-e26d7d9b2dec:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-reason-auth-outage-to-jwt-rejection","repetition":1,"operationName":"connectivity-reason-changed","diagnosticKey":"connectivity:reason-changed:auth-outage:jwt-rejection","clientEventId":"d11aece2-77b3-4e27-bd64-d6540c29a882","operationId":"tab:3c7df346-fc2c-40f1-9bee-e26d7d9b2dec:event:2","receiptStored":true,"storedRowVerified":true},{"sequence":3,"id":"connectivity-exited-jwt-rejection","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:jwt-rejection","clientEventId":"225cb9b1-1a3b-4ed3-a4bb-51bd3af5969e","operationId":"tab:8c1d5a46-c2a4-4fc1-971e-b0f1fa52dd75:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-1#case-12-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-013","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls","valueSha256":"6efa19a060c0b05b1dae89f71e51c709bddcd67f5dfa9bcd17b9107d920217c2","matched":true,"value":[{"id":"case-013-jwt-storm-snapshot-owner-switch","description":"실제 TOKEN_REFRESHED와 두 JWT401 뒤에도 최소 snapshot의 사용자 소유권이 유지되어야 한다.","boundary":"indexeddb","status":"passed","expected":"1a07e6d9-5b34-4c5d-a160-05ef0b1c94f5","comparator":{"kind":"deepEqual"},"normalActual":"1a07e6d9-5b34-4c5d-a160-05ef0b1c94f5","normal":{"matched":true},"negativeActual":"1ac1301f-131a-4b7a-8d1a-4241872cefc9","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"1a07e6d9-5b34-4c5d-a160-05ef0b1c94f5","restored":{"matched":true},"durationMs":53}]},{"id":"run-browser-1#case-12-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-013","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls/0/normalActual","valueSha256":"dd7e91f83c2c1f5851496262a6c3b1602490f4412fdeb247e5a8a29aba74e9e0","matched":true,"value":"1a07e6d9-5b34-4c5d-a160-05ef0b1c94f5"},{"id":"run-browser-1#case-12-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-013","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls/0/negativeActual","valueSha256":"1db4e0772b51d1442e5b50bd3807d62d5192b7cfbae9c611c8eeaea6cb5d10d5","matched":true,"value":"1ac1301f-131a-4b7a-8d1a-4241872cefc9"},{"id":"run-browser-1#case-12-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-013","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls/0/restoredActual","valueSha256":"dd7e91f83c2c1f5851496262a6c3b1602490f4412fdeb247e5a8a29aba74e9e0","matched":true,"value":"1a07e6d9-5b34-4c5d-a160-05ef0b1c94f5"},{"id":"run-browser-1#case-12-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-013","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-013","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-12-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-013","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-12-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-013","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-12-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/quality/cleanup/resources","valueSha256":"e8f32e39bde3dce089d07f3a3af947dd7fc8402881232e97e4fa4de5d82fc2af","matched":true,"value":[{"id":"case-013-original-workspace-route","status":"passed","settled":true,"durationMs":2},{"id":"case-013-fault-workspace-route","status":"passed","settled":true,"durationMs":1},{"id":"control-case-013-jwt-storm-snapshot-owner-switch","status":"passed","settled":true,"durationMs":12},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":117},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":121},{"id":"observed-page-3","status":"passed","settled":true,"durationMs":102}]},{"id":"run-browser-1#case-12-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/ownedPageListeners","valueSha256":"95117cced258c798ec10f6e5c60a58b21f3f882bff3f99e53c60b03d5ebc8c4c","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-12-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-12-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-12-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-12-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-12-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-12-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-12-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-12-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/startedAt","valueSha256":"7c8f323ec1153cab615b93eea6f2815f6ecb89e77f50470997ece1f66c1be512","matched":true,"value":"2026-09-09T20:04:07.663Z"},{"id":"run-browser-1#case-12-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/finishedAt","valueSha256":"361206a4017aaba792d9babe3a9fb3ef21c19c38328840f88b43aedf155e83b8","matched":true,"value":"2026-09-09T20:04:14.256Z"},{"id":"run-browser-1#case-12-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-12-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-12-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-013","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-12-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/0/pageClosed","valueSha256":"165ace55c001f05574a3af322057611bf86c806b233366d0384c795f9ff24ead","matched":true,"value":{"sequence":102,"pendingRequestIds":[]}},{"id":"run-browser-1#case-12-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/0/routeCleanup","valueSha256":"8a8c807facec1873622327a1ac06991462a36a630f6d328554e33c89f68452b9","matched":true,"value":[{"startedSequence":100,"status":"completed","completedSequence":101}]},{"id":"run-browser-1#case-12-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/0/observerDisposal","valueSha256":"1e3df8d2742cef6e3ea85f72227f27fbd7eeeb7f5b03df546878ba5d7a8d041a","matched":true,"value":{"status":"completed","closeSequence":102,"startedSequence":103,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":104}},{"id":"run-browser-1#case-12-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/1/pageClosed","valueSha256":"31854ac0f95a3189e43be2ae8531ce5ed617698b0d2bdcf331526635f96ef70f","matched":true,"value":{"sequence":81,"pendingRequestIds":[]}},{"id":"run-browser-1#case-12-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/1/routeCleanup","valueSha256":"0254715ff4d7d5c8da4c297c450aaa4361d811c148547114f9f0934e3bb5db7b","matched":true,"value":[{"startedSequence":79,"status":"completed","completedSequence":80}]},{"id":"run-browser-1#case-12-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/1/observerDisposal","valueSha256":"85475018cfcfb56e56859ee2157fd701a828e99269327d4b5a79a688af9b682d","matched":true,"value":{"status":"completed","closeSequence":81,"startedSequence":82,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":83}},{"id":"run-browser-1#case-12-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-page-2-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/2/pageClosed","valueSha256":"363cae87b24c130a8416e08c1c41e7bb8d6dce433fff117d83918313d3d4b183","matched":true,"value":{"sequence":57,"pendingRequestIds":[]}},{"id":"run-browser-1#case-12-page-2-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/2/routeCleanup","valueSha256":"b59b4e828354e47392dfceee73b7c2251735fcc090cd82642931e37fb1713dbd","matched":true,"value":[{"startedSequence":55,"status":"completed","completedSequence":56}]},{"id":"run-browser-1#case-12-page-2-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/2/observerDisposal","valueSha256":"ea534e9386210d5cd2c3f96bb49f3b700ea138c3af8b0e1355bac0d2d9728f7f","matched":true,"value":{"status":"completed","closeSequence":57,"startedSequence":58,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":59}},{"id":"run-browser-1#case-12-page-2-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/2/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-12-page-2-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-013","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/11/diagnostic/pages/2/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-014","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/12/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"6357a746f820763fe2061d7be30d48465c9791e1cd5919a55e2e65a4ad948a36","matched":true,"value":6708},{"id":"run-browser-1#case-13-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-014","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/checkpoints","valueSha256":"b572dee97ff762beed36a63063bfdf1d7c33057687a0e55faa91e9551c6621ed","matched":true,"value":[{"id":"cold-document-reads-owner-snapshot","passed":true,"assertions":9},{"id":"third-attempt-recovers-live-owner","passed":true,"assertions":10},{"id":"later-page-keeps-owner","passed":true,"assertions":5},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-13-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-014","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-014","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-014","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-014","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/id","valueSha256":"6af1314c0396f32a0c11843da18fdd031da381bafc222924c644f5a4d97672da","matched":true,"value":"cold-start-profile-workspace-503"},{"id":"run-browser-1#case-13-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-1#case-13-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/path","valueSha256":"ffd8cb179d0e6b2aed56af6db6503d0ae553ab53969e67d9e0c8a180ad41f736","matched":true,"value":"/rest/v1/rpc/get_profile_workspace"},{"id":"run-browser-1#case-13-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-1#case-13-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-1#case-13-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-13-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-13-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/expectedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-1#case-13-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/observedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-1#case-13-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/0/id","valueSha256":"1d1735fbc711fadc03751e460c44b07241c8429d034499190be6309d4a4fd065","matched":true,"value":"connectivity-entered-auth-outage"},{"id":"run-browser-1#case-13-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-1#case-13-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-13-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-13-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/1/id","valueSha256":"1e8ee21771ca4d5c8caff14e7a4791b996eda5c38d5443b88ef8271e87c324a5","matched":true,"value":"connectivity-exited-auth-outage"},{"id":"run-browser-1#case-13-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-1#case-13-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-13-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-13-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-014","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/checkpoints","valueSha256":"b572dee97ff762beed36a63063bfdf1d7c33057687a0e55faa91e9551c6621ed","matched":true,"value":[{"id":"cold-document-reads-owner-snapshot","passed":true,"assertions":9},{"id":"third-attempt-recovers-live-owner","passed":true,"assertions":10},{"id":"later-page-keeps-owner","passed":true,"assertions":5},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-1#case-13-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/rpcObservers","valueSha256":"6c8977e1fcee88b38b2abd25de91ae4eb46b014a74e0fccc4ad667a5b70e18c9","matched":true,"value":[{"operation":"get_exercise_catalog","generation":0,"completed":1,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false}]},{"operation":"get_calendar_month_summary","generation":0,"completed":1,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false}]},{"operation":"get_volume_overview","generation":0,"completed":1,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-1#case-13-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-014","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/completion","valueSha256":"0c370888ad0a6305f0c4bc01c18b91ed661a2dff8bf61eba0ba0e42a47be0f05","matched":true,"value":{"caseId":"CASE-014","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":1,"rendered-user-journey":1,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"cold-start-profile-workspace-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":null,"attemptWindow":{"first":1,"last":2},"requestCount":4,"requiredAttempts":[1,2],"observedAttempts":[1,2],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"cold-start-profile-workspace-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56721/rest/v1/rpc/get_profile_workspace"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"cold-start-profile-workspace-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":"","attempt":2,"url":"http://127.0.0.1:56721/rest/v1/rpc/get_profile_workspace"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-connectivity-lifecycle","owner":"case-context-user","expectedCount":2,"observedCount":2,"records":[{"sequence":1,"id":"connectivity-entered-auth-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:auth-outage","clientEventId":"3efb18b0-4d4a-44f7-8151-996e80670ccd","operationId":"tab:53ad1697-0f83-46ed-ae62-05ed13ab75db:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-exited-auth-outage","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:auth-outage","clientEventId":"871b5de5-e659-4126-9b2c-4ccbd69d07c6","operationId":"tab:53ad1697-0f83-46ed-ae62-05ed13ab75db:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-1#case-13-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-014","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls","valueSha256":"ec5e71718d8143dab8a11a1299adf27c63151b23744f132e94503e66ee23ec76","matched":true,"value":[{"id":"case-014-cold-start-home-snapshot-payload-missing","description":"기존 문서가 사라진 cold-start 탭에서도 저장된 최소 Home payload를 읽을 수 있어야 한다.","boundary":"indexeddb","status":"passed","expected":"2026-09-10","comparator":{"kind":"deepEqual"},"normalActual":"2026-09-10","normal":{"matched":true},"negativeActual":null,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":"2026-09-10","restored":{"matched":true},"durationMs":33}]},{"id":"run-browser-1#case-13-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-014","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls/0/normalActual","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-13-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-014","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls/0/negativeActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-1#case-13-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-014","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls/0/restoredActual","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-13-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-014","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-13-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-014","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-13-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-014","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-13-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-014","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-13-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-13-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/quality/cleanup/resources","valueSha256":"d9d6ca04902380edfcb215b9fef95067db9ed9008585b12054a92d9cacd2f49a","matched":true,"value":[{"id":"case-014-workspace-route","status":"passed","settled":true,"durationMs":2},{"id":"control-case-014-cold-start-home-snapshot-payload-missing","status":"passed","settled":true,"durationMs":10},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":440},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":0},{"id":"rpc-observer-2","status":"passed","settled":true,"durationMs":0},{"id":"rpc-observer-3","status":"passed","settled":true,"durationMs":1},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":339},{"id":"observed-page-3","status":"passed","settled":true,"durationMs":124}]},{"id":"run-browser-1#case-13-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/ownedPageListeners","valueSha256":"691adba412e296d5b52116059bf3c8b2a4dcadc42f97662fd81b0cb78e664acd","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-13-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-13-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-13-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-13-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-13-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-13-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-13-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-13-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/startedAt","valueSha256":"ee97ee7df5e3baad4cd76ba3d3f5b1b1caef89fe0c2bbc3c602330f733b17670","matched":true,"value":"2026-09-09T20:04:14.575Z"},{"id":"run-browser-1#case-13-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/finishedAt","valueSha256":"5d7f8d15b5a122014513fc6612c37817c7cd0b8a4e9043447a04f84e9edb507f","matched":true,"value":"2026-09-09T20:04:21.198Z"},{"id":"run-browser-1#case-13-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-13-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-13-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-014","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-13-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/0/pageClosed","valueSha256":"ec1ffe515e9ede52e73b5270bff1baf67f99a86c3e07fa0724f5f0bcf5d6cc08","matched":true,"value":{"sequence":65,"pendingRequestIds":[]}},{"id":"run-browser-1#case-13-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/0/routeCleanup","valueSha256":"d28ccff3e131d71056109f6cc43e87be8c596fff9381661387f39f6a8dd3add4","matched":true,"value":[{"startedSequence":63,"status":"completed","completedSequence":64}]},{"id":"run-browser-1#case-13-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/0/observerDisposal","valueSha256":"ac3ca3c6736cdeeb52892dc38b9a67f9c0925fd82176a6f9443a20c29500c1ba","matched":true,"value":{"status":"completed","closeSequence":65,"startedSequence":66,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":67}},{"id":"run-browser-1#case-13-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/1/pageClosed","valueSha256":"26367c2792ced0c28ef9c458b89da8135fe5ac555bbd479f9bbea5e602d74b25","matched":true,"value":{"sequence":87,"pendingRequestIds":[]}},{"id":"run-browser-1#case-13-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/1/routeCleanup","valueSha256":"34ecb2f6ef8ce1dd1967d923e2d499c13f775e3afe9592cc294a6682738eea02","matched":true,"value":[{"startedSequence":85,"status":"completed","completedSequence":86}]},{"id":"run-browser-1#case-13-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/1/observerDisposal","valueSha256":"99d2faecdd73506625e2855f7180b1a11253b4b6079e3a785294c27967ed2b9a","matched":true,"value":{"status":"completed","closeSequence":87,"startedSequence":88,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":89}},{"id":"run-browser-1#case-13-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-page-2-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/2/pageClosed","valueSha256":"363cae87b24c130a8416e08c1c41e7bb8d6dce433fff117d83918313d3d4b183","matched":true,"value":{"sequence":57,"pendingRequestIds":[]}},{"id":"run-browser-1#case-13-page-2-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/2/routeCleanup","valueSha256":"b59b4e828354e47392dfceee73b7c2251735fcc090cd82642931e37fb1713dbd","matched":true,"value":[{"startedSequence":55,"status":"completed","completedSequence":56}]},{"id":"run-browser-1#case-13-page-2-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/2/observerDisposal","valueSha256":"ea534e9386210d5cd2c3f96bb49f3b700ea138c3af8b0e1355bac0d2d9728f7f","matched":true,"value":{"status":"completed","closeSequence":57,"startedSequence":58,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":59}},{"id":"run-browser-1#case-13-page-2-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/2/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-13-page-2-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-014","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/12/diagnostic/pages/2/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-015","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-1/error-cases.json","artifactSha256":"89a98298293b0bfe0914c1d5679eddd6799cb2623838942779c1272e58bce82d","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"701f3709edf2915b59e871f081141b51a5a984c28178b86e2d297162fd323065","matched":true,"value":11826},{"id":"run-browser-1#case-14-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-015","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/checkpoints","valueSha256":"b16ae5182f87cfa14ddfbf2cc85c8587baef7eb5b6708ed53492e610fb5f14e7","matched":true,"value":[{"id":"initial-failure-durable-row","passed":true,"assertions":31},{"id":"failed-flush-retains-row","passed":true,"assertions":10},{"id":"second-recovery-persists-once","passed":true,"assertions":12},{"id":"reload-keeps-one-session","passed":true,"assertions":17},{"id":"journey-completion","passed":true,"assertions":12}]},{"id":"run-browser-1#case-14-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-015","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-015","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-015","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-015","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/id","valueSha256":"a586c6e52858db2aaccf5eb4cbc405f046c548ad8954d27b93daefe340cf8cf8","matched":true,"value":"completed-workout-create-and-first-flush-503"},{"id":"run-browser-1#case-14-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-1#case-14-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-1#case-14-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-1#case-14-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-1#case-14-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-14-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-1#case-14-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/expectedCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-1#case-14-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/observedCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-1#case-14-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/0/id","valueSha256":"c92cddadd7f6cb23872519c44cacfa01df1901871e5233f693d7b7bf1ca0c5e8","matched":true,"value":"connectivity-entered-initial-write-api-outage"},{"id":"run-browser-1#case-14-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-1#case-14-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/1/id","valueSha256":"f2c89bd5677b5d6e73bb0c84c5bbbca0f93ad69cc2f8ef1957580c2bc01b3153","matched":true,"value":"connectivity-exited-before-first-flush"},{"id":"run-browser-1#case-14-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-1#case-14-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-required-event-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/2/id","valueSha256":"6447a0c50b7d0287423879f19e8166549e125164e380418960b9469005dc3aaa","matched":true,"value":"connectivity-entered-failed-recovery-flush"},{"id":"run-browser-1#case-14-required-event-2-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/2/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-1#case-14-required-event-2-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/2/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-required-event-2-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/2/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-required-event-3-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/3/id","valueSha256":"71daba69d841c2fa67709fefc26f280085914ec6479dd43201e0c00f6efe1155","matched":true,"value":"connectivity-exited-final-recovery"},{"id":"run-browser-1#case-14-required-event-3-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/3/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-1#case-14-required-event-3-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/3/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-required-event-3-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion/requiredObservationEvidence/records/3/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-015","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/checkpoints","valueSha256":"b16ae5182f87cfa14ddfbf2cc85c8587baef7eb5b6708ed53492e610fb5f14e7","matched":true,"value":[{"id":"initial-failure-durable-row","passed":true,"assertions":31},{"id":"failed-flush-retains-row","passed":true,"assertions":10},{"id":"second-recovery-persists-once","passed":true,"assertions":12},{"id":"reload-keeps-one-session","passed":true,"assertions":17},{"id":"journey-completion","passed":true,"assertions":12}]},{"id":"run-browser-1#case-14-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/rpcObservers","valueSha256":"3786f3cfd0e1c031488993a3fed447c028bf8435019294b7230133bc5dbe94ca","matched":true,"value":[{"operation":"get_pr_overview","generation":1,"completed":3,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":1,"method":"POST","settled":true,"failed":false},{"id":3,"generation":1,"method":"POST","settled":true,"failed":false},{"id":4,"generation":1,"method":"POST","settled":true,"failed":false}]},{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":1,"completed":4,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":1,"method":"POST","settled":true,"failed":false},{"id":2,"generation":1,"method":"POST","settled":true,"failed":false},{"id":3,"generation":1,"method":"POST","settled":true,"failed":false},{"id":4,"generation":1,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-1#case-14-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-015","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/completion","valueSha256":"f050e0557fe6096f1710a1ea30f7518ebc3795768cbad6872e8d042bfe14e6dc","matched":true,"value":{"caseId":"CASE-015","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":2,"rendered-user-journey":1,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"completed-workout-create-and-first-flush-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":null,"attemptWindow":{"first":1,"last":2},"requestCount":3,"requiredAttempts":[1,2],"observedAttempts":[1,2],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"completed-workout-create-and-first-flush-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56721/rest/v1/rpc/save_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"completed-workout-create-and-first-flush-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":2,"url":"http://127.0.0.1:56721/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-connectivity-lifecycle","owner":"case-context-user","expectedCount":4,"observedCount":4,"records":[{"sequence":1,"id":"connectivity-entered-initial-write-api-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"19691682-869a-4cf4-843c-4786f6d0ed1f","operationId":"tab:40ce3c3c-4212-4586-812d-5bc898747f93:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-exited-before-first-flush","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"89a9be40-94c0-44bb-b3c3-8057ac52e1ab","operationId":"tab:40ce3c3c-4212-4586-812d-5bc898747f93:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true},{"sequence":3,"id":"connectivity-entered-failed-recovery-flush","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"0d304e10-84bb-4e3b-88a0-2628feb4c1a5","operationId":"tab:40ce3c3c-4212-4586-812d-5bc898747f93:event:2","receiptStored":true,"storedRowVerified":true},{"sequence":4,"id":"connectivity-exited-final-recovery","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"ac54f5c3-5ed0-45f0-ba08-3e1cd0828318","operationId":"tab:40ce3c3c-4212-4586-812d-5bc898747f93:1:6:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-1#case-14-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-015","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls","valueSha256":"fd78c9e8b669cda106d420c340f7d727facbf61cca5238d0de6922ec11dfff17","matched":true,"value":[{"id":"case-015-duplicate-owner-pending-create","description":"동일 운동은 초기503과 recovery 재실패 동안 owner pending row 정확히1개로 남아야 한다.","boundary":"indexeddb","status":"passed","expected":1,"comparator":{"kind":"deepEqual"},"normalActual":1,"normal":{"matched":true},"negativeActual":2,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":1,"restored":{"matched":true},"durationMs":28}]},{"id":"run-browser-1#case-14-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-015","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls/0/normalActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-14-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-015","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls/0/negativeActual","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-1#case-14-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-015","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls/0/restoredActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-14-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-015","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-015","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-1#case-14-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-015","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-14-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-015","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-1#case-14-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/quality/cleanup/resources","valueSha256":"bc77f095cb351827ccb9401d67294a25b4ec82728ef33e4b409d2bac0b4e1d43","matched":true,"value":[{"id":"case-015-recovery-routes","status":"passed","settled":true,"durationMs":1},{"id":"control-case-015-duplicate-owner-pending-create","status":"passed","settled":true,"durationMs":7},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":76},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":0},{"id":"rpc-observer-2","status":"passed","settled":true,"durationMs":1}]},{"id":"run-browser-1#case-14-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/ownedPageListeners","valueSha256":"b151442308b14c33088f287ff401fb193499a23a1af2b860bf1becba763335d5","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-1#case-14-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-1#case-14-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-1#case-14-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-1#case-14-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-1#case-14-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-1#case-14-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-1#case-14-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-1#case-14-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/startedAt","valueSha256":"6bb192f998a827cf959cd04176f2354a8c24bf0a855d477f30250c8007dbe2e5","matched":true,"value":"2026-09-09T20:04:21.545Z"},{"id":"run-browser-1#case-14-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/finishedAt","valueSha256":"b2b22524ce31935ccff6a45ba0d214ac85f549e98ce22986b56fe2d4e540931c","matched":true,"value":"2026-09-09T20:04:33.257Z"},{"id":"run-browser-1#case-14-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-1#case-14-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-1#case-14-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-015","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-1#case-14-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/pages/0/pageClosed","valueSha256":"9a69533d13c3a33bc0069b2577d032c0c9e04212753987a5f4a7235f441b38f4","matched":true,"value":{"sequence":245,"pendingRequestIds":[]}},{"id":"run-browser-1#case-14-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/pages/0/routeCleanup","valueSha256":"9299cd8306d17ecac82bf77fa777fbd3397a32dee03f453c3b2c1fb4b43041d5","matched":true,"value":[{"startedSequence":243,"status":"completed","completedSequence":244}]},{"id":"run-browser-1#case-14-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/pages/0/observerDisposal","valueSha256":"955a44884de16bdbdef5c5fb9f0f95e49b13456b1f8198346ee6282cb38736bc","matched":true,"value":{"status":"completed","closeSequence":245,"startedSequence":246,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":247}},{"id":"run-browser-1#case-14-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-1#case-14-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-015","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-1/browser-1-of-4.e2e-evidence.json","artifactSha256":"e86014fba4c2d6b1d43cbd66f15491fbc47715ba0f6706f25dd6a8aab31f9161","pointer":"/results/13/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-15-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-016","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"75b167181ef4fd16ae5df34a55c9b9e1e7c4b84318d56d5978989f87093fea89","matched":true,"value":8807},{"id":"run-browser-2#case-15-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-016","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/checkpoints","valueSha256":"1e8a700ab256d8f585e1ee89b84879a3b78ebdb9762d4b80b1f2baadd1eadb3b","matched":true,"value":[{"id":"save-shell-alive","passed":true,"assertions":17},{"id":"home-reload-with-plan","passed":true,"assertions":40},{"id":"existing-plan-edit-and-reentry","passed":true,"assertions":45},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-2#case-15-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-016","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-15-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-016","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-15-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-016","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-15-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-016","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-15-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-016","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/checkpoints","valueSha256":"1e8a700ab256d8f585e1ee89b84879a3b78ebdb9762d4b80b1f2baadd1eadb3b","matched":true,"value":[{"id":"save-shell-alive","passed":true,"assertions":17},{"id":"home-reload-with-plan","passed":true,"assertions":40},{"id":"existing-plan-edit-and-reentry","passed":true,"assertions":45},{"id":"journey-completion","passed":true,"assertions":9}]},{"id":"run-browser-2#case-15-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-15-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-016","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/completion","valueSha256":"3ee585ed583b72853fdc12957638156f919f35c05ebf8ef0a2d332ea285988f0","matched":true,"value":{"caseId":"CASE-016","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"postgresql-readback":3,"frontend-state":1,"reload-reentry":2,"rendered-user-journey":2,"authenticated-api-rpc":2,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-15-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-016","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls","valueSha256":"8b752a4dee67bd16bec6f20fba24c1d2d0023045a8f676531ec423cc7b13e83a","matched":true,"value":[{"id":"case-016-saved-plan-home-remains-locked","description":"새 계획 저장 후 reload에서도 Home/일지가 접근 가능하고 저장한 계획에 진입할 수 있어야 한다.","boundary":"dom","status":"passed","expected":0,"comparator":{"kind":"deepEqual"},"normalActual":0,"normal":{"matched":true},"negativeActual":1,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":0,"restored":{"matched":true},"durationMs":74}]},{"id":"run-browser-2#case-15-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-016","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls/0/normalActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-15-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-016","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls/0/negativeActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-15-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-016","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls/0/restoredActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-15-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-016","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-15-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-016","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-15-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-016","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-15-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-016","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-15-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-15-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/quality/cleanup/resources","valueSha256":"dcf6cc0c2ea490bd1e585f3bcfb70ca7ed94335e26149d3140a00acc6b19bbc6","matched":true,"value":[{"id":"control-case-016-saved-plan-home-remains-locked","status":"passed","settled":true,"durationMs":41},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":70}]},{"id":"run-browser-2#case-15-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-15-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-15-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-15-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-15-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-15-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-15-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-15-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-15-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/startedAt","valueSha256":"ffa1b7e6a1bb98c1b3d7cf0104572914e205467ff8a390c6e7ff5c66e28fa04a","matched":true,"value":"2026-09-09T20:02:59.120Z"},{"id":"run-browser-2#case-15-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/finishedAt","valueSha256":"dc5e2a34e38402b56fad4999e35a9df5af3c4feb310ba681a11627560ac302ce","matched":true,"value":"2026-09-09T20:03:07.795Z"},{"id":"run-browser-2#case-15-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-15-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-15-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-016","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-15-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/pages/0/pageClosed","valueSha256":"1760ec2bae829645e0d44b02d45dedcbd67ef9e7eb9f8c80f9fc8c8ef3d27b6b","matched":true,"value":{"sequence":220,"pendingRequestIds":[]}},{"id":"run-browser-2#case-15-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/pages/0/routeCleanup","valueSha256":"bfc65270d61d46d50f86702ee7ccba9d0b87c790d141a7000484008859d68354","matched":true,"value":[{"startedSequence":218,"status":"completed","completedSequence":219}]},{"id":"run-browser-2#case-15-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/pages/0/observerDisposal","valueSha256":"36c5dbabbef1e76fe180f4d0e25cbd667dd771a09d25e53abd26c6b8e040c98d","matched":true,"value":{"status":"completed","closeSequence":220,"startedSequence":221,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":222}},{"id":"run-browser-2#case-15-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-15-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-016","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/0/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-017","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"45df51e4ea78519b4123b5b652497fddd25169c2752c8efff237dbe475ae6b8c","matched":true,"value":6256},{"id":"run-browser-2#case-16-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-017","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/checkpoints","valueSha256":"fef4fa4989c23f4f410e416e18a0a686f6ff54a2b43e9692e65ac3545b4c5718","matched":true,"value":[{"id":"predelete-isolated-state","passed":true,"assertions":25},{"id":"in-app-deletion-round-trip","passed":true,"assertions":38},{"id":"control-render-reentry","passed":true,"assertions":7},{"id":"journey-completion","passed":true,"assertions":24}]},{"id":"run-browser-2#case-16-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-017","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-017","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-017","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-017","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-017","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/checkpoints","valueSha256":"fef4fa4989c23f4f410e416e18a0a686f6ff54a2b43e9692e65ac3545b4c5718","matched":true,"value":[{"id":"predelete-isolated-state","passed":true,"assertions":25},{"id":"in-app-deletion-round-trip","passed":true,"assertions":38},{"id":"control-render-reentry","passed":true,"assertions":7},{"id":"journey-completion","passed":true,"assertions":24}]},{"id":"run-browser-2#case-16-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-017","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/completion","valueSha256":"8e0b1594bfbdc648ec28f2e2773e268589fe52a33d4940cc76b1d1e8cc46a9c5","matched":true,"value":{"caseId":"CASE-017","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"frontend-state":2,"postgresql-readback":2,"authenticated-api-rpc":2,"rendered-user-journey":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-16-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-017","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls","valueSha256":"862d9f42d727b2977380671952cffe415e1a8134ca088c18858fa11780f25b78","matched":true,"value":[{"id":"case-017-account-delete-leaves-storage-object","description":"계정 삭제 후 세 bucket의 해당 사용자 prefix에 파일이 남지 않아야 한다.","boundary":"storage-service","status":"passed","expected":[[],[],[]],"comparator":{"kind":"deepEqual"},"normalActual":[[],[],[]],"normal":{"matched":true},"negativeActual":[["case-017-residue-38797f6b-f6d3-4fe0-8bbb-5e6208e538ec.png"],[],[]],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":[[],[],[]],"restored":{"matched":true},"durationMs":114}]},{"id":"run-browser-2#case-16-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-017","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls/0/normalActual","valueSha256":"5ae1625b488b3935122d8dd627fe575b388a5aa360378fa4407aad08baaed1e2","matched":true,"value":[[],[],[]]},{"id":"run-browser-2#case-16-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-017","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls/0/negativeActual","valueSha256":"6ab674951073414cd48b34ef821b18cd419d88e83dc89d642b4cf984fd3d101b","matched":true,"value":[["case-017-residue-38797f6b-f6d3-4fe0-8bbb-5e6208e538ec.png"],[],[]]},{"id":"run-browser-2#case-16-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-017","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls/0/restoredActual","valueSha256":"5ae1625b488b3935122d8dd627fe575b388a5aa360378fa4407aad08baaed1e2","matched":true,"value":[[],[],[]]},{"id":"run-browser-2#case-16-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-017","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-16-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-017","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-16-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-017","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-16-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-017","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-16-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-16-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/quality/cleanup/resources","valueSha256":"7ee2aa88714e45443969726e3e20a741ee8831a187a380e19f4edf97b8354b18","matched":true,"value":[{"id":"control-case-017-account-delete-leaves-storage-object","status":"passed","settled":true,"durationMs":25},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":9},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":69}]},{"id":"run-browser-2#case-16-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-16-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-16-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-16-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-16-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-16-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-16-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-16-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-16-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/startedAt","valueSha256":"ad3f9a73d6f230bbaa5ea835bbfececa3734386a37f68060ec32b96bfac33eb9","matched":true,"value":"2026-09-09T20:03:08.158Z"},{"id":"run-browser-2#case-16-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/finishedAt","valueSha256":"5377d3365188e13669fe2d274b1e804fac5c6e1847f17c9d71023e0409d42195","matched":true,"value":"2026-09-09T20:03:14.295Z"},{"id":"run-browser-2#case-16-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-16-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-16-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-017","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-16-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/0/pageClosed","valueSha256":"a41da4c238d28cb328bd59069e3e3162957f0a855942f354f4efa968afb5f8e9","matched":true,"value":{"sequence":64,"pendingRequestIds":[]}},{"id":"run-browser-2#case-16-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/0/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/0/observerDisposal","valueSha256":"522c385a35120f112a927fbb969550ddc2f34d9dd1c344f062c385ef0caf1f93","matched":true,"value":{"status":"completed","closeSequence":64,"startedSequence":65,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":66}},{"id":"run-browser-2#case-16-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/1/pageClosed","valueSha256":"ccff176c35b8e44a98cb149b1726a4412f864ce844095f6a4a6407a0bfc66cc2","matched":true,"value":{"sequence":101,"pendingRequestIds":[]}},{"id":"run-browser-2#case-16-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/1/routeCleanup","valueSha256":"198599190a8d7b4a8b45b4d4cae8ad7d1e3c227d445e10e41cefe4c93622eebf","matched":true,"value":[{"startedSequence":99,"status":"completed","completedSequence":100}]},{"id":"run-browser-2#case-16-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/1/observerDisposal","valueSha256":"5be685b2c71d16aed30d944443b7f4e11230fee6d262a034f3afb89f474e250b","matched":true,"value":{"status":"completed","closeSequence":101,"startedSequence":102,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":103}},{"id":"run-browser-2#case-16-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-16-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-017","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/1/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-018","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"d6acb3c1a79e57bcc03d976cb4d98f56edccd4cf426392e8cd4b01b965ab808b","matched":true,"value":4181},{"id":"run-browser-2#case-17-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-018","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/checkpoints","valueSha256":"1b6ced677bf4ede84ff63ae4dd3138397c109cb6f821a827c4706c95528fe214","matched":true,"value":[{"id":"feed-baseline","passed":true,"assertions":5},{"id":"report-immediate-hide","passed":true,"assertions":13},{"id":"block-round-trip","passed":true,"assertions":15},{"id":"admin-moderation","passed":true,"assertions":17},{"id":"journey-completion","passed":true,"assertions":39}]},{"id":"run-browser-2#case-17-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-018","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-018","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-018","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-018","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-018","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/checkpoints","valueSha256":"1b6ced677bf4ede84ff63ae4dd3138397c109cb6f821a827c4706c95528fe214","matched":true,"value":[{"id":"feed-baseline","passed":true,"assertions":5},{"id":"report-immediate-hide","passed":true,"assertions":13},{"id":"block-round-trip","passed":true,"assertions":15},{"id":"admin-moderation","passed":true,"assertions":17},{"id":"journey-completion","passed":true,"assertions":39}]},{"id":"run-browser-2#case-17-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-018","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/completion","valueSha256":"d17f8e7676a6a938afd9fb544820bb05d4e38668560459beac3c7784556969b4","matched":true,"value":{"caseId":"CASE-018","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":3,"postgresql-readback":3,"reload-reentry":1,"authenticated-api-rpc":2,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-17-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-018","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls","valueSha256":"33d8e6b61ddd53d8497c5bce15f3441be6ad31f3261b56c775408101a35dfbdb","matched":true,"value":[{"id":"case-018-block-leaves-reverse-follow","description":"차단은 실제 준비된 양방향 follow를 모두 제거해야 한다.","boundary":"http-response","status":"passed","expected":[],"comparator":{"kind":"deepEqual"},"normalActual":[],"normal":{"matched":true},"negativeActual":[{"follower_user_id":"6ff8fcfd-019b-43c1-80b5-974b258f5c20","followee_user_id":"3ff2e3bf-0333-4ffb-b8be-44b586a80552"}],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/user_follows"}},"restoredActual":[],"restored":{"matched":true},"durationMs":14}]},{"id":"run-browser-2#case-17-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-018","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls/0/normalActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-018","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls/0/negativeActual","valueSha256":"7022097ae558bd340d4ad0d69712d7f2d3a98ff08c20a8bc4930d44fcb5fa0f2","matched":true,"value":[{"follower_user_id":"6ff8fcfd-019b-43c1-80b5-974b258f5c20","followee_user_id":"3ff2e3bf-0333-4ffb-b8be-44b586a80552"}]},{"id":"run-browser-2#case-17-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-018","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls/0/restoredActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-018","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-17-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-018","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-17-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-018","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-17-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-018","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-17-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-17-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/quality/cleanup/resources","valueSha256":"51ed9024f7b05a826f0cb575ddd54092eac7e90613d0b54e77aab3495d608be8","matched":true,"value":[{"id":"case-018-admin-registry","status":"passed","settled":true,"durationMs":41},{"id":"case-018-content-takedown","status":"passed","settled":true,"durationMs":35},{"id":"control-case-018-block-leaves-reverse-follow","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":91}]},{"id":"run-browser-2#case-17-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-17-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-17-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-17-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-17-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-17-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-17-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-17-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-17-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/startedAt","valueSha256":"7915ef7d1c9b388f967d2b4ec6d80d4ee5fc978ba63a0e18f52672c885cf925b","matched":true,"value":"2026-09-09T20:03:14.537Z"},{"id":"run-browser-2#case-17-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/finishedAt","valueSha256":"06fd47d459f59374edef5c4413505d5e9af29ba230bf1d38ab856cc59b596fd9","matched":true,"value":"2026-09-09T20:03:18.593Z"},{"id":"run-browser-2#case-17-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-17-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-17-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-018","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-17-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/pages/0/pageClosed","valueSha256":"237e67889a6615ae3062037753552e406294545b1c7528bfd94f148620ee8766","matched":true,"value":{"sequence":125,"pendingRequestIds":[]}},{"id":"run-browser-2#case-17-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/pages/0/routeCleanup","valueSha256":"f4a0b5a0ca292e6c158d6144af4c56b6b9ebddadc53b3a22366a43ab98d10cfa","matched":true,"value":[{"startedSequence":123,"status":"completed","completedSequence":124}]},{"id":"run-browser-2#case-17-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/pages/0/observerDisposal","valueSha256":"c3c05afced38f8f4f586ddb11fc6384f055ce8a7572124a34399e163a1cfaac0","matched":true,"value":{"status":"completed","closeSequence":125,"startedSequence":126,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":127}},{"id":"run-browser-2#case-17-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-17-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-018","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/2/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-18-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-019","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"fcd4e25bb2a919b986574a4432b396deccf6f119f1919efb4ce6e86e1227e9ac","matched":true,"value":8421},{"id":"run-browser-2#case-18-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-019","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/checkpoints","valueSha256":"50bb56ff81db4e747da503ece82ff55d2e6ea62703ed0dd08e63f79e36cbf82b","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":2},{"id":"board-percent-compose","passed":true,"assertions":13},{"id":"snapshot-and-reload","passed":true,"assertions":9},{"id":"reentry","passed":true,"assertions":5},{"id":"member-own-1rm-prefill","passed":true,"assertions":20},{"id":"journey-completion","passed":true,"assertions":26}]},{"id":"run-browser-2#case-18-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-019","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-18-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-019","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-18-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-019","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-18-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-019","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-18-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-019","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/checkpoints","valueSha256":"50bb56ff81db4e747da503ece82ff55d2e6ea62703ed0dd08e63f79e36cbf82b","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":2},{"id":"board-percent-compose","passed":true,"assertions":13},{"id":"snapshot-and-reload","passed":true,"assertions":9},{"id":"reentry","passed":true,"assertions":5},{"id":"member-own-1rm-prefill","passed":true,"assertions":20},{"id":"journey-completion","passed":true,"assertions":26}]},{"id":"run-browser-2#case-18-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-18-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-019","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/completion","valueSha256":"276c6031c93bf50900ad8c193431a10327d1174a69b6c6fe02cb90889c8289cc","matched":true,"value":{"caseId":"CASE-019","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":2,"postgresql-readback":2,"rendered-user-journey":2,"frontend-state":3,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-18-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-019","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls","valueSha256":"82e9b70accf6f452fec65a86f8501f0aff00c5674980ba3c7e1e993b5aa38801","matched":true,"value":[{"id":"case-019-coach-kg-leaks-into-member-prefill","description":"회원 자신의1RM200·처방73%·5kg 반올림으로145kg를 prefill하며 작성자999kg를 가져오면 안 된다.","boundary":"dom","status":"passed","expected":"145","comparator":{"kind":"deepEqual"},"normalActual":"145","normal":{"matched":true},"negativeActual":"999","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"145","restored":{"matched":true},"durationMs":34}]},{"id":"run-browser-2#case-18-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-019","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls/0/normalActual","valueSha256":"8a1ca3d14181e58affa3443b2c9646995c6e5568351fe71747156ad2a6cb0cae","matched":true,"value":"145"},{"id":"run-browser-2#case-18-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-019","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls/0/negativeActual","valueSha256":"a90868b2a3d1d84b91f9aae5e8dca73f9552cf24d6623ec3c3038f3f085d468d","matched":true,"value":"999"},{"id":"run-browser-2#case-18-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-019","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls/0/restoredActual","valueSha256":"8a1ca3d14181e58affa3443b2c9646995c6e5568351fe71747156ad2a6cb0cae","matched":true,"value":"145"},{"id":"run-browser-2#case-18-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-019","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-18-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-019","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-18-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-019","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-18-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-019","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-18-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-18-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/quality/cleanup/resources","valueSha256":"db67b1efbcb332dbc61b36dd31e9cadbe140fd648243c45ef9080d43e186ef0d","matched":true,"value":[{"id":"control-case-019-coach-kg-leaks-into-member-prefill","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":84}]},{"id":"run-browser-2#case-18-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-18-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-18-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-18-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-18-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-18-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-18-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-18-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-18-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/startedAt","valueSha256":"bf6f48371ec336e574048bc4a52fa3e8a4b94b75cbe725b6597a3c1345b4c1b6","matched":true,"value":"2026-09-09T20:03:18.816Z"},{"id":"run-browser-2#case-18-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/finishedAt","valueSha256":"119bed9ea66155d4cda4c0fd51a6e02d4b0cfdf42b3d90a8e65a692480388c3f","matched":true,"value":"2026-09-09T20:03:27.158Z"},{"id":"run-browser-2#case-18-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-18-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-18-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-019","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-18-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/pages/0/pageClosed","valueSha256":"b8b8e27a2afacffd5c80021d40eab50d6f2034a822a658d6c1de248271aa9190","matched":true,"value":{"sequence":211,"pendingRequestIds":[]}},{"id":"run-browser-2#case-18-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/pages/0/routeCleanup","valueSha256":"50b76e7b54999bd29d6bf51fada9f18b0daec0ca08d11cd544b7e28f257e779b","matched":true,"value":[{"startedSequence":209,"status":"completed","completedSequence":210}]},{"id":"run-browser-2#case-18-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/pages/0/observerDisposal","valueSha256":"5d119337d0a9183b4ba1b2730c38472fb5e6a0f640548585d777e83cfd5963ea","matched":true,"value":{"status":"completed","closeSequence":211,"startedSequence":212,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":213}},{"id":"run-browser-2#case-18-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-18-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-019","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/3/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-19-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-020","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"060c9d7a12050d242ea666cbceb82dcb3915628a914816806b76075d0b35e84d","matched":true,"value":6583},{"id":"run-browser-2#case-19-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-020","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/checkpoints","valueSha256":"620e40fa1b54384f274c34769bb7b91b0006947848b2f59a86a0cf6cdf0d1674","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":6},{"id":"board-composite-compose","passed":true,"assertions":45},{"id":"snapshot-and-reload","passed":true,"assertions":15},{"id":"reentry-and-prefill","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-2#case-19-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-020","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-19-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-020","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-19-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-020","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-19-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-020","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-19-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-020","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/checkpoints","valueSha256":"620e40fa1b54384f274c34769bb7b91b0006947848b2f59a86a0cf6cdf0d1674","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":6},{"id":"board-composite-compose","passed":true,"assertions":45},{"id":"snapshot-and-reload","passed":true,"assertions":15},{"id":"reentry-and-prefill","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-2#case-19-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-19-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-020","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/completion","valueSha256":"e591cea56569784b324080f38b114cf3be502daf0cfde45ad57b734a0f9e7cd2","matched":true,"value":{"caseId":"CASE-020","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":1,"postgresql-readback":2,"rendered-user-journey":1,"frontend-state":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-19-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-020","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls","valueSha256":"a20075945defee4898eb8775be3ac2d706793ee350210e103eb41ac8c4bc4cd1","matched":true,"value":[{"id":"case-020-composite-loses-second-movement-values","description":"복합2개 구성과 동작별 parts의10+10을 보존해야 하며 합계 reps20만으로 대체할 수 없다.","boundary":"http-response","status":"passed","expected":[{"reps":10},{"reps":10}],"comparator":{"kind":"deepEqual"},"normalActual":[{"reps":10},{"reps":10}],"normal":{"matched":true},"negativeActual":[{"reps":10}],"negative":{"matched":false,"applied":{"count":1,"method":"POST","path":"/rest/v1/rpc/get_group_board_v1"}},"restoredActual":[{"reps":10},{"reps":10}],"restored":{"matched":true},"durationMs":48}]},{"id":"run-browser-2#case-19-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-020","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls/0/normalActual","valueSha256":"b848f0ea4245d81fe2bac7a6fea292d9371fa388c29c26b77255138b9526ebed","matched":true,"value":[{"reps":10},{"reps":10}]},{"id":"run-browser-2#case-19-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-020","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls/0/negativeActual","valueSha256":"76d48a7f18def369aee0675c8727cad0634339bbea568ad3d3f1c2fb6dd92a1e","matched":true,"value":[{"reps":10}]},{"id":"run-browser-2#case-19-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-020","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls/0/restoredActual","valueSha256":"b848f0ea4245d81fe2bac7a6fea292d9371fa388c29c26b77255138b9526ebed","matched":true,"value":[{"reps":10},{"reps":10}]},{"id":"run-browser-2#case-19-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-020","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-19-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-020","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-19-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-020","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-19-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-020","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-19-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-19-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/quality/cleanup/resources","valueSha256":"c21e7680a56041c2a8f8b3f2731aaa1b15f435c89ae4a70d6258250ad5f46725","matched":true,"value":[{"id":"control-case-020-composite-loses-second-movement-values","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":87}]},{"id":"run-browser-2#case-19-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-19-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-19-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-19-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-19-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-19-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-19-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-19-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-19-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/startedAt","valueSha256":"8cd9c4e8691bead5eb73d8db990ade4a7bb36b6b0ca932a076ef4e86ce24c4d5","matched":true,"value":"2026-09-09T20:03:27.331Z"},{"id":"run-browser-2#case-19-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/finishedAt","valueSha256":"4a8104ec8be10c9f29a28298431b07b728dc75c2551502f70eba5738dbe7e2d0","matched":true,"value":"2026-09-09T20:03:33.832Z"},{"id":"run-browser-2#case-19-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-19-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-19-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-020","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-19-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/pages/0/pageClosed","valueSha256":"9c97532a354f0633f3a665ae964a5e777bec1ef986a3962ae2ef6f0a87f5f3e1","matched":true,"value":{"sequence":146,"pendingRequestIds":[]}},{"id":"run-browser-2#case-19-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/pages/0/routeCleanup","valueSha256":"a89f77de34098dd1b73c0b5a13bffa5e6967bbc9d2954bb21770b745a32eecd7","matched":true,"value":[{"startedSequence":144,"status":"completed","completedSequence":145}]},{"id":"run-browser-2#case-19-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/pages/0/observerDisposal","valueSha256":"ecc48df45048fabed4efae9012129556e682e37cd4432e47df419857bb513a83","matched":true,"value":{"status":"completed","closeSequence":146,"startedSequence":147,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":148}},{"id":"run-browser-2#case-19-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-19-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-020","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/4/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-20-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-021","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/5/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"996379383479fea3d057c4c43b8e9e4058dbfc32a56b4e3a976fc1e5dfa2b033","matched":true,"value":6443},{"id":"run-browser-2#case-20-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-021","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/checkpoints","valueSha256":"5a807f72e140d84de433b4130e5f6ec912771a950ad5736602f8d2286f6d7037","matched":true,"value":[{"id":"composite-editor-load-gate","passed":true,"assertions":23},{"id":"fail-tap-redo-clean","passed":true,"assertions":6},{"id":"save-and-reload","passed":true,"assertions":27},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-20-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-021","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-20-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-021","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-20-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-021","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-20-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-021","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-20-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-021","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/checkpoints","valueSha256":"5a807f72e140d84de433b4130e5f6ec912771a950ad5736602f8d2286f6d7037","matched":true,"value":[{"id":"composite-editor-load-gate","passed":true,"assertions":23},{"id":"fail-tap-redo-clean","passed":true,"assertions":6},{"id":"save-and-reload","passed":true,"assertions":27},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-20-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-20-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-021","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/completion","valueSha256":"63e80852b6d7f586d8f5510555f551c98b34033b6bd38c6df76ee9abe7995612","matched":true,"value":{"caseId":"CASE-021","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":2,"frontend-state":2,"rendered-user-journey":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-20-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-021","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls","valueSha256":"a79ef3f51f0bc1c4b3736f29a352c545a8604c2a87c3a625c1349840cfc65e37","matched":true,"value":[{"id":"case-021-blank-composite-load-gate-opens","description":"복합 동작별 reps가 있어도 중량이 빈 값이면 저장이 잠겨야 하며 명시0은 허용한다.","boundary":"dom","status":"passed","expected":{"load":"","disabled":true},"comparator":{"kind":"deepEqual"},"normalActual":{"load":"","disabled":true},"normal":{"matched":true},"negativeActual":{"load":"","disabled":false},"negative":{"matched":false,"applied":{"count":1}},"restoredActual":{"load":"","disabled":true},"restored":{"matched":true},"durationMs":41}]},{"id":"run-browser-2#case-20-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-021","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls/0/normalActual","valueSha256":"a4c686bb1d7651caba82624fdc2769ac698eb8cb1afefbaf28a4f2975a0777e7","matched":true,"value":{"load":"","disabled":true}},{"id":"run-browser-2#case-20-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-021","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls/0/negativeActual","valueSha256":"69926676869f9e738ebfdd99fe911b126aa164012221d290c599fec6bd94d9bd","matched":true,"value":{"load":"","disabled":false}},{"id":"run-browser-2#case-20-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-021","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls/0/restoredActual","valueSha256":"a4c686bb1d7651caba82624fdc2769ac698eb8cb1afefbaf28a4f2975a0777e7","matched":true,"value":{"load":"","disabled":true}},{"id":"run-browser-2#case-20-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-021","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-20-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-021","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-20-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-021","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-20-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-021","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-20-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-20-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/quality/cleanup/resources","valueSha256":"077b4094ffd2d5652dd1ec00bec553a23ebf63fa64dace940cb3d4bd513026de","matched":true,"value":[{"id":"control-case-021-blank-composite-load-gate-opens","status":"passed","settled":true,"durationMs":6},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":84}]},{"id":"run-browser-2#case-20-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-20-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-20-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-20-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-20-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-20-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-20-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-20-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-20-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/startedAt","valueSha256":"194e079b1441221548263c87a325cacf346d9a5fb4e5638c22b8474d09c83c95","matched":true,"value":"2026-09-09T20:03:34.091Z"},{"id":"run-browser-2#case-20-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/finishedAt","valueSha256":"1965602b2042c470e035e429a00182b15307a948d6472cfdfb1b24f43e1b9d9a","matched":true,"value":"2026-09-09T20:03:40.441Z"},{"id":"run-browser-2#case-20-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-20-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-20-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-021","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-20-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/pages/0/pageClosed","valueSha256":"c5fdb5d14a4a98cedfeb21a06a5051a5c139cb7878555090b25dbd5d5bb2468a","matched":true,"value":{"sequence":179,"pendingRequestIds":[]}},{"id":"run-browser-2#case-20-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/pages/0/routeCleanup","valueSha256":"f7671693fbb575559c3645c20815b3c0dedbaae03e2f4ecca699172089a650c4","matched":true,"value":[{"startedSequence":177,"status":"completed","completedSequence":178}]},{"id":"run-browser-2#case-20-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/pages/0/observerDisposal","valueSha256":"1122a36147e532d31616effae580cb66237d7382f38bb42463b01e087b92d841","matched":true,"value":{"status":"completed","closeSequence":179,"startedSequence":180,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":181}},{"id":"run-browser-2#case-20-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-20-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-021","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/5/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-21-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-022","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/6/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"86618dead4b0d6bb47d327de127bf227236c1f7f0766d56d8dba97dadd090822","matched":true,"value":6688},{"id":"run-browser-2#case-21-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-022","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/checkpoints","valueSha256":"962fa1277d5bf626c69171b5d98c3d9bd195ef33242581f8ea72c4ddb5ec70bc","matched":true,"value":[{"id":"mixed-editor-per-movement-atoms","passed":true,"assertions":22},{"id":"movement-rows-own-atoms","passed":true,"assertions":31},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-21-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-022","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-21-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-022","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-21-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-022","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-21-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-022","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-21-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-022","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/checkpoints","valueSha256":"962fa1277d5bf626c69171b5d98c3d9bd195ef33242581f8ea72c4ddb5ec70bc","matched":true,"value":[{"id":"mixed-editor-per-movement-atoms","passed":true,"assertions":22},{"id":"movement-rows-own-atoms","passed":true,"assertions":31},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-21-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-21-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-022","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/completion","valueSha256":"b5194c67cda9a4d5cd7ef17320ef8ff674663549f6f278f9475d96c33121b862","matched":true,"value":{"caseId":"CASE-022","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":2,"frontend-state":2,"rendered-user-journey":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-21-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-022","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls","valueSha256":"c03e2c3d4a5a0d8ac9fd7946b90ea8d30d95f9b01fbc40492ff2bc69dc2b466b","matched":true,"value":[{"id":"case-022-strength-load-contaminates-duration-row","description":"시간 전용 hold 행은30초·reps null·load null이어야 한다.","boundary":"http-response","status":"passed","expected":null,"comparator":{"kind":"deepEqual"},"normalActual":null,"normal":{"matched":true},"negativeActual":60,"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":null,"restored":{"matched":true},"durationMs":48}]},{"id":"run-browser-2#case-21-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-022","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls/0/normalActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-2#case-21-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-022","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls/0/negativeActual","valueSha256":"39fa9ec190eee7b6f4dff1100d6343e10918d044c75eac8f9e9a2596173f80c9","matched":true,"value":60},{"id":"run-browser-2#case-21-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-022","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls/0/restoredActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-2#case-21-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-022","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-21-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-022","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-21-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-022","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-21-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-022","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-21-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-21-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/quality/cleanup/resources","valueSha256":"82c0df2b03cef5ef8098255fc0fba2a5f2d30fe4ae69154f33a56759e972bd31","matched":true,"value":[{"id":"control-case-022-strength-load-contaminates-duration-row","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":78}]},{"id":"run-browser-2#case-21-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-21-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-21-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-21-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-21-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-21-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-21-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-21-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-21-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/startedAt","valueSha256":"c86697c1af237bd66965154998b14db1aaa8eb17658f5e02400b90e4011b4f5c","matched":true,"value":"2026-09-09T20:03:40.657Z"},{"id":"run-browser-2#case-21-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/finishedAt","valueSha256":"7906fae03a1e6f57fb1ff2314548ecce57b180d92acd697b6bd382ffe1c75e36","matched":true,"value":"2026-09-09T20:03:47.224Z"},{"id":"run-browser-2#case-21-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-21-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-21-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-022","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-21-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/pages/0/pageClosed","valueSha256":"c8ee90541f1fafbe364e13fb0948ed76e634f6252555a18254009b1c1e0725d5","matched":true,"value":{"sequence":176,"pendingRequestIds":[]}},{"id":"run-browser-2#case-21-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/pages/0/routeCleanup","valueSha256":"084ab620a3f61ffea0a764db2c8ad6d5d84bf9641d65547a23f365e5359a48f7","matched":true,"value":[{"startedSequence":174,"status":"completed","completedSequence":175}]},{"id":"run-browser-2#case-21-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/pages/0/observerDisposal","valueSha256":"32015a0529cb50f31455506d63542ef4e78d8e51caecee2780470d955fafe8f1","matched":true,"value":{"status":"completed","closeSequence":176,"startedSequence":177,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":178}},{"id":"run-browser-2#case-21-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-21-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-022","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/6/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-22-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-023","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/7/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"99ef2a43a9c7dba73f9423e93fe08c6113068d1845346fc7bf2a910613bbe039","matched":true,"value":11049},{"id":"run-browser-2#case-22-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-023","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/checkpoints","valueSha256":"998329b90450f89d558fb6f2095854c2992d4ba6d151ae72623b54b67deca7c3","matched":true,"value":[{"id":"auto-save-and-note-follow-up","passed":true,"assertions":28},{"id":"consecutive-set-edits","passed":true,"assertions":37},{"id":"reload-reentry","passed":true,"assertions":15},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-22-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-023","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-22-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-023","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-22-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-023","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-22-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-023","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-22-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-023","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/checkpoints","valueSha256":"998329b90450f89d558fb6f2095854c2992d4ba6d151ae72623b54b67deca7c3","matched":true,"value":[{"id":"auto-save-and-note-follow-up","passed":true,"assertions":28},{"id":"consecutive-set-edits","passed":true,"assertions":37},{"id":"reload-reentry","passed":true,"assertions":15},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-22-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-22-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-023","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/completion","valueSha256":"b0b0f61e485d033c58c7d8cd810a6a12819fbdac2a193a4f716c39c986aaffa8","matched":true,"value":{"caseId":"CASE-023","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"authenticated-api-rpc":1,"frontend-state":3,"postgresql-readback":3,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-22-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-023","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls","valueSha256":"4fd141d677fdfcdc5af8950886086465afe4f30545bb41c8dd87004fecff0487","matched":true,"value":[{"id":"case-023-follow-up-recreates-child-row-identity","description":"연속 수정 뒤 revision4여도 처음 만든 세트/종목 행 id를 유지해야 한다.","boundary":"http-response","status":"passed","expected":{"exercises":["5233a94e-7f78-49aa-8ae0-d828285b7656"],"sets":["a886a4f9-91df-478f-bc2d-640c7c0d30b2","358637af-acbc-4e07-8100-8efa355ab491"]},"comparator":{"kind":"deepEqual"},"normalActual":{"exercises":["5233a94e-7f78-49aa-8ae0-d828285b7656"],"sets":["a886a4f9-91df-478f-bc2d-640c7c0d30b2","358637af-acbc-4e07-8100-8efa355ab491"]},"normal":{"matched":true},"negativeActual":{"exercises":["5233a94e-7f78-49aa-8ae0-d828285b7656"],"sets":["56886fb8-4bdc-4f6a-9326-820950062414","358637af-acbc-4e07-8100-8efa355ab491"]},"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":{"exercises":["5233a94e-7f78-49aa-8ae0-d828285b7656"],"sets":["a886a4f9-91df-478f-bc2d-640c7c0d30b2","358637af-acbc-4e07-8100-8efa355ab491"]},"restored":{"matched":true},"durationMs":62}]},{"id":"run-browser-2#case-22-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-023","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls/0/normalActual","valueSha256":"4ed15af3d30a75621a608eb4cd68b5c6db06d3dc510e17f5d251350475d2bc2a","matched":true,"value":{"exercises":["5233a94e-7f78-49aa-8ae0-d828285b7656"],"sets":["a886a4f9-91df-478f-bc2d-640c7c0d30b2","358637af-acbc-4e07-8100-8efa355ab491"]}},{"id":"run-browser-2#case-22-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-023","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls/0/negativeActual","valueSha256":"db087ed69f8ea1e954aac3808f3868471b550755a52038718e92828f5405852d","matched":true,"value":{"exercises":["5233a94e-7f78-49aa-8ae0-d828285b7656"],"sets":["56886fb8-4bdc-4f6a-9326-820950062414","358637af-acbc-4e07-8100-8efa355ab491"]}},{"id":"run-browser-2#case-22-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-023","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls/0/restoredActual","valueSha256":"4ed15af3d30a75621a608eb4cd68b5c6db06d3dc510e17f5d251350475d2bc2a","matched":true,"value":{"exercises":["5233a94e-7f78-49aa-8ae0-d828285b7656"],"sets":["a886a4f9-91df-478f-bc2d-640c7c0d30b2","358637af-acbc-4e07-8100-8efa355ab491"]}},{"id":"run-browser-2#case-22-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-023","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-22-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-023","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-22-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-023","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-22-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-023","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-22-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-22-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/quality/cleanup/resources","valueSha256":"deb0880cf27eb304c701fd2cfea6bdfbe2e90afbc25a3d415d31275b3cd6893e","matched":true,"value":[{"id":"control-case-023-follow-up-recreates-child-row-identity","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":103}]},{"id":"run-browser-2#case-22-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-22-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-22-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-22-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-22-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-22-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-22-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-22-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-22-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/startedAt","valueSha256":"a9dd7d7b3c7cede74611d931a4a66588a85d45c2b1ddd0a24c90024a79454ccd","matched":true,"value":"2026-09-09T20:03:47.419Z"},{"id":"run-browser-2#case-22-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/finishedAt","valueSha256":"b70010d641b0bfd634b705e47e195720498419734e565f14ccbb6d366d0b7efc","matched":true,"value":"2026-09-09T20:03:58.383Z"},{"id":"run-browser-2#case-22-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-22-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-22-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-023","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-22-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/pages/0/pageClosed","valueSha256":"5fdd703fafc70d917345623b3ae3192ddba9d4caf82c10ce6bfeacd1f1b62fa2","matched":true,"value":{"sequence":265,"pendingRequestIds":[]}},{"id":"run-browser-2#case-22-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/pages/0/routeCleanup","valueSha256":"94844100086b2996d5f69e2bb6bbb68fa9eaa14aec1827adfa482fda6a4b84e6","matched":true,"value":[{"startedSequence":263,"status":"completed","completedSequence":264}]},{"id":"run-browser-2#case-22-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/pages/0/observerDisposal","valueSha256":"73929a22742a48ad7c44016d693de4c4463a05804db1eaebb20d34f983d16920","matched":true,"value":{"status":"completed","closeSequence":265,"startedSequence":266,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":267}},{"id":"run-browser-2#case-22-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-22-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-023","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/7/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-23-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-024","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/8/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"2083296bd79c5a9e3de29d91189d50b42ac13ce7607171708c67d57d39a39efe","matched":true,"value":8158},{"id":"run-browser-2#case-23-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-024","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/checkpoints","valueSha256":"21bcc142f9abde21ada7bc310fa153815d8aa0dc1fb9145e51903597e6c89c77","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":4},{"id":"set-value-edit","passed":true,"assertions":25},{"id":"time-and-note-only-edits","passed":true,"assertions":24},{"id":"reload-reentry","passed":true,"assertions":14},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-23-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-024","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-23-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-024","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-23-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-024","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-23-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-024","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-23-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-024","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/checkpoints","valueSha256":"21bcc142f9abde21ada7bc310fa153815d8aa0dc1fb9145e51903597e6c89c77","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":4},{"id":"set-value-edit","passed":true,"assertions":25},{"id":"time-and-note-only-edits","passed":true,"assertions":24},{"id":"reload-reentry","passed":true,"assertions":14},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-23-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-23-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-024","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/completion","valueSha256":"7cd45e3939e9adbad8d9cd17eb2553506615589461cf392a0705ed0eebf57a0e","matched":true,"value":{"caseId":"CASE-024","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":1,"rendered-user-journey":1,"frontend-state":3,"postgresql-readback":3,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-23-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-024","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls","valueSha256":"b620f5c7f95baa62c06a815e67e23aa0ffc1e66408bfdb4a5ac0fa08369fcc3e","matched":true,"value":[{"id":"case-024-note-only-save-keeps-old-metadata","description":"세트를 건드리지 않은 note-only 저장도 새 note와 revision4를 유지해야 한다.","boundary":"http-response","status":"passed","expected":"CASE-024 note-only edit mtuj0x27-ded423","comparator":{"kind":"deepEqual"},"normalActual":"CASE-024 note-only edit mtuj0x27-ded423","normal":{"matched":true},"negativeActual":"","negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/session"}},"restoredActual":"CASE-024 note-only edit mtuj0x27-ded423","restored":{"matched":true},"durationMs":40}]},{"id":"run-browser-2#case-23-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-024","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls/0/normalActual","valueSha256":"0385496ae65e65917f9d3d694f5f2a0c476dedd5a65ccce6f10a70c498eca55d","matched":true,"value":"CASE-024 note-only edit mtuj0x27-ded423"},{"id":"run-browser-2#case-23-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-024","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls/0/negativeActual","valueSha256":"12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126","matched":true,"value":""},{"id":"run-browser-2#case-23-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-024","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls/0/restoredActual","valueSha256":"0385496ae65e65917f9d3d694f5f2a0c476dedd5a65ccce6f10a70c498eca55d","matched":true,"value":"CASE-024 note-only edit mtuj0x27-ded423"},{"id":"run-browser-2#case-23-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-024","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-23-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-024","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-23-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-024","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-23-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-024","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-23-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-23-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/quality/cleanup/resources","valueSha256":"1750c167fc1b36683c6bb93c100dbd2afb8c516b2e4d392ae0d3a5e59737d982","matched":true,"value":[{"id":"control-case-024-note-only-save-keeps-old-metadata","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":106}]},{"id":"run-browser-2#case-23-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-23-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-23-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-23-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-23-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-23-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-23-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-23-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-23-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/startedAt","valueSha256":"e8406074eea330e30acea8bd18c34550a9e15fb4d5a6e8ffc1ec620b3d022256","matched":true,"value":"2026-09-09T20:03:58.687Z"},{"id":"run-browser-2#case-23-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/finishedAt","valueSha256":"312105c9663a98529064a85c053e4aefd7306b715538941526eb5f7ede4bf6c3","matched":true,"value":"2026-09-09T20:04:06.727Z"},{"id":"run-browser-2#case-23-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-23-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-23-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-024","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-23-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/pages/0/pageClosed","valueSha256":"d883d013ca912828838f617db39f8c347498c6791b9b5ebe2d1242737a81580e","matched":true,"value":{"sequence":218,"pendingRequestIds":[]}},{"id":"run-browser-2#case-23-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/pages/0/routeCleanup","valueSha256":"35c04bd2dcb7874f0023477acedea10b5874f5b5db608c11d84c926a3f84e38b","matched":true,"value":[{"startedSequence":216,"status":"completed","completedSequence":217}]},{"id":"run-browser-2#case-23-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/pages/0/observerDisposal","valueSha256":"5e55d6acc933f8a978390cdc1819083651ed31eb1544ac2bf72a1089438edc99","matched":true,"value":{"status":"completed","closeSequence":218,"startedSequence":219,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":220}},{"id":"run-browser-2#case-23-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-23-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-024","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/8/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-24-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-025","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/9/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"da5d26410ae112bfd2513b4d4eb0497ccf8eeb095cd613fee834e521705d8f20","matched":true,"value":8187},{"id":"run-browser-2#case-24-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-025","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/checkpoints","valueSha256":"8ae3bd15c57252cf1948527cc81bc5333ad3c5bd894cc03dc3881e25ab2940ce","matched":true,"value":[{"id":"plan-save","passed":true,"assertions":17},{"id":"start-from-plan-and-complete","passed":true,"assertions":31},{"id":"reload-reentry","passed":true,"assertions":16},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-2#case-24-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-025","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-24-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-025","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-24-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-025","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-24-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-025","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-24-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-025","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/checkpoints","valueSha256":"8ae3bd15c57252cf1948527cc81bc5333ad3c5bd894cc03dc3881e25ab2940ce","matched":true,"value":[{"id":"plan-save","passed":true,"assertions":17},{"id":"start-from-plan-and-complete","passed":true,"assertions":31},{"id":"reload-reentry","passed":true,"assertions":16},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-2#case-24-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-24-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-025","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/completion","valueSha256":"9b41ac74dc1a5e2414b4a1be20cb9a301cf8f1f05722f156a479df6beb362807","matched":true,"value":{"caseId":"CASE-025","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":3,"postgresql-readback":2,"reload-reentry":2,"authenticated-api-rpc":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-24-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-025","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls","valueSha256":"e9eb6c162e56b0468d4f80f8524a105b96b08bdf7678432dc7ecb4dcf3ea713f","matched":true,"value":[{"id":"case-025-completed-workout-leaves-plan-open","description":"계획으로 시작한 운동이 완료 저장되면 같은 plan id가completed로 닫혀야 한다.","boundary":"http-response","status":"passed","expected":"completed","comparator":{"kind":"deepEqual"},"normalActual":"completed","normal":{"matched":true},"negativeActual":"planned","negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/session"}},"restoredActual":"completed","restored":{"matched":true},"durationMs":13}]},{"id":"run-browser-2#case-24-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-025","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls/0/normalActual","valueSha256":"7093fda846e50b267da144f7b3683ee1dd8838506939f6052b7370dd01fa2ad0","matched":true,"value":"completed"},{"id":"run-browser-2#case-24-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-025","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls/0/negativeActual","valueSha256":"05ad072baae0b1e93afd052919622063b32b852dd55c9495c77a16487b1fa639","matched":true,"value":"planned"},{"id":"run-browser-2#case-24-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-025","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls/0/restoredActual","valueSha256":"7093fda846e50b267da144f7b3683ee1dd8838506939f6052b7370dd01fa2ad0","matched":true,"value":"completed"},{"id":"run-browser-2#case-24-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-025","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-24-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-025","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-24-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-025","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-24-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-025","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-24-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-24-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/quality/cleanup/resources","valueSha256":"2d227cb4280b7142c4f184ba754d1d400371dad14ded1c94664f292e9bd6db95","matched":true,"value":[{"id":"control-case-025-completed-workout-leaves-plan-open","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":68}]},{"id":"run-browser-2#case-24-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-24-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-24-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-24-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-24-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-24-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-24-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-24-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-24-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/startedAt","valueSha256":"eae56d2a8f95e3199ea85f3f00bc9b6a0b5f6ba21f9bce567983b930a2bd85f9","matched":true,"value":"2026-09-09T20:04:07.009Z"},{"id":"run-browser-2#case-24-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/finishedAt","valueSha256":"763097c88e2733f155c33fbfbe52238abf47af364df10697b20058f855d38eac","matched":true,"value":"2026-09-09T20:04:15.079Z"},{"id":"run-browser-2#case-24-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-24-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-24-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-025","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-24-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/pages/0/pageClosed","valueSha256":"f91907c9723d379a0d2b7fe8ca68b935f7bcc3929bdb27ae1cc2d921c3be6705","matched":true,"value":{"sequence":272,"pendingRequestIds":["63","65"]}},{"id":"run-browser-2#case-24-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/pages/0/routeCleanup","valueSha256":"87c6c888fbfd04f50765f557e3dd2376cbe36711f082022669e9d815acc87907","matched":true,"value":[{"startedSequence":270,"status":"completed","completedSequence":271}]},{"id":"run-browser-2#case-24-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/pages/0/observerDisposal","valueSha256":"0e8b13b12331d93156eed38495a79c66d98af68ff7857d8d6b5eff5bf13b3e0d","matched":true,"value":{"status":"completed","closeSequence":272,"startedSequence":273,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":274}},{"id":"run-browser-2#case-24-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-24-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-025","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/9/diagnostic/pages/0/previousDocumentPending","valueSha256":"fb98fa82a5b87d8cd710b7341dd5b05779f4eb2eb202d00c11726882d18a13e3","matched":true,"value":["63","65"]},{"id":"run-browser-2#case-25-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-026","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/10/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"509a9edbeff0c385a956b77657466cb7a2d89a6b3e9ed43b5d80996ca2aa6aaf","matched":true,"value":7873},{"id":"run-browser-2#case-25-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-026","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/checkpoints","valueSha256":"5ec53aec5642871bf4fe90d0ba04293af17fbe469a888335d9b0d6aa25d7c840","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":1},{"id":"board-compose","passed":true,"assertions":15},{"id":"board-workout-and-follow-up","passed":true,"assertions":25},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-2#case-25-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-026","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-25-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-026","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-25-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-026","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-25-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-026","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-25-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-026","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/checkpoints","valueSha256":"5ec53aec5642871bf4fe90d0ba04293af17fbe469a888335d9b0d6aa25d7c840","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":1},{"id":"board-compose","passed":true,"assertions":15},{"id":"board-workout-and-follow-up","passed":true,"assertions":25},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-2#case-25-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-25-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-026","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/completion","valueSha256":"a462797a564a193922bab570d05c104c8776ffcdf3da861fc9b354db8a09cbc7","matched":true,"value":{"caseId":"CASE-026","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":2,"rendered-user-journey":1,"frontend-state":3,"postgresql-readback":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-25-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-026","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls","valueSha256":"8fed76766cb6602b6ea14ca43188357c9ac4b5866ca47b1166f17647436a2a41","matched":true,"value":[{"id":"case-026-note-follow-up-loses-group-board-lineage","description":"그룹 보드 운동의 note-only 후속 저장은 원래 group-board source_ref와 행 id를 보존해야 한다.","boundary":"http-response","status":"passed","expected":"group-board:ec958b69-43df-4ec1-af6c-19c2b6eb17ef:2026-09-10:local-workout:cf4a8c5d-b9d6-4991-abbd-b1174fa0ce66","comparator":{"kind":"deepEqual"},"normalActual":"group-board:ec958b69-43df-4ec1-af6c-19c2b6eb17ef:2026-09-10:local-workout:cf4a8c5d-b9d6-4991-abbd-b1174fa0ce66","normal":{"matched":true},"negativeActual":"local:d89df020-59c0-4e7f-93ab-21b24518f7c0","negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/session"}},"restoredActual":"group-board:ec958b69-43df-4ec1-af6c-19c2b6eb17ef:2026-09-10:local-workout:cf4a8c5d-b9d6-4991-abbd-b1174fa0ce66","restored":{"matched":true},"durationMs":60}]},{"id":"run-browser-2#case-25-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-026","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls/0/normalActual","valueSha256":"5b68532bf04e62de7608102227c8a792d5bcc08cb4bd0b9d7886c2831829e9d9","matched":true,"value":"group-board:ec958b69-43df-4ec1-af6c-19c2b6eb17ef:2026-09-10:local-workout:cf4a8c5d-b9d6-4991-abbd-b1174fa0ce66"},{"id":"run-browser-2#case-25-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-026","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls/0/negativeActual","valueSha256":"e79a0410c0890848795a0b780501a7805d7a088cbe821166e45d01aa279049b6","matched":true,"value":"local:d89df020-59c0-4e7f-93ab-21b24518f7c0"},{"id":"run-browser-2#case-25-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-026","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls/0/restoredActual","valueSha256":"5b68532bf04e62de7608102227c8a792d5bcc08cb4bd0b9d7886c2831829e9d9","matched":true,"value":"group-board:ec958b69-43df-4ec1-af6c-19c2b6eb17ef:2026-09-10:local-workout:cf4a8c5d-b9d6-4991-abbd-b1174fa0ce66"},{"id":"run-browser-2#case-25-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-026","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-25-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-026","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-25-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-026","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-25-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-026","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-25-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-25-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/quality/cleanup/resources","valueSha256":"ad1a8e0d8356ca7279466548fc1fabcfb9628258cdab713a697ec7a163ce6c27","matched":true,"value":[{"id":"control-case-026-note-follow-up-loses-group-board-lineage","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":113}]},{"id":"run-browser-2#case-25-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-25-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-25-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-25-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-25-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-25-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-25-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-25-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-25-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/startedAt","valueSha256":"3fe8f12f2f8f8959452f067d9c838582fd01f0b7063f908db3313fcbb8fa8f2b","matched":true,"value":"2026-09-09T20:04:15.290Z"},{"id":"run-browser-2#case-25-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/finishedAt","valueSha256":"79f7bef14319ed6637b4076ec4003211d06f882303cd9751947179e81ce71bc6","matched":true,"value":"2026-09-09T20:04:23.068Z"},{"id":"run-browser-2#case-25-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-25-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-25-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-026","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-25-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/pages/0/pageClosed","valueSha256":"7dce00f17d245741e4edb0cc89d6d7d61fdcc58dd12c493c4e8b9b6d45620920","matched":true,"value":{"sequence":203,"pendingRequestIds":[]}},{"id":"run-browser-2#case-25-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/pages/0/routeCleanup","valueSha256":"4ab86b55f9175e37628a39027321109037f1a3de5f2da2ca4c373e5064642477","matched":true,"value":[{"startedSequence":201,"status":"completed","completedSequence":202}]},{"id":"run-browser-2#case-25-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/pages/0/observerDisposal","valueSha256":"a6e79dd868fd1dd98afd8e22696a3addc52b31026a2c4008c607ec7568a575e0","matched":true,"value":{"status":"completed","closeSequence":203,"startedSequence":204,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":205}},{"id":"run-browser-2#case-25-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-25-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-026","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/10/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-26-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-027","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/11/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"e65de07206769a840236482900eb1716f98505e252b8920a7dcba4faf47b4e05","matched":true,"value":6442},{"id":"run-browser-2#case-26-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-027","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/checkpoints","valueSha256":"a1637ec1ae3e8616f4e78e9d28786a3c273c98db8afcce72e6e5c6182083d4a3","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":1},{"id":"board-compose","passed":true,"assertions":17},{"id":"board-edit-resave","passed":true,"assertions":30},{"id":"journey-completion","passed":true,"assertions":19}]},{"id":"run-browser-2#case-26-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-027","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-26-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-027","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-26-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-027","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-26-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-027","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-26-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-027","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/checkpoints","valueSha256":"a1637ec1ae3e8616f4e78e9d28786a3c273c98db8afcce72e6e5c6182083d4a3","matched":true,"value":[{"id":"provisioning","passed":true,"assertions":1},{"id":"board-compose","passed":true,"assertions":17},{"id":"board-edit-resave","passed":true,"assertions":30},{"id":"journey-completion","passed":true,"assertions":19}]},{"id":"run-browser-2#case-26-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-26-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-027","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/completion","valueSha256":"ad78a44b3b94f6421d13acfc6d396204a603f78f838f78ab49ecf9b1e3ddd7c0","matched":true,"value":{"caseId":"CASE-027","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":1,"rendered-user-journey":1,"frontend-state":2,"postgresql-readback":2,"reload-reentry":2,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-26-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-027","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls","valueSha256":"e920137765dae3d8e6a526659094c2f63fbb86519a929e43b3b33b68d80797b0","matched":true,"value":[{"id":"case-027-board-resave-retains-old-load","description":"보드를 60에서 80으로 수정한 뒤 같은 보드 id의 스냅샷도 80×5여야 한다.","boundary":"http-response","status":"passed","expected":80,"comparator":{"kind":"deepEqual"},"normalActual":80,"normal":{"matched":true},"negativeActual":60,"negative":{"matched":false,"applied":{"count":1,"method":"POST","path":"/rest/v1/rpc/get_group_board_v1"}},"restoredActual":80,"restored":{"matched":true},"durationMs":34}]},{"id":"run-browser-2#case-26-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-027","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls/0/normalActual","valueSha256":"48449a14a4ff7d79bb7a1b6f3d488eba397c36ef25634c111b49baf362511afc","matched":true,"value":80},{"id":"run-browser-2#case-26-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-027","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls/0/negativeActual","valueSha256":"39fa9ec190eee7b6f4dff1100d6343e10918d044c75eac8f9e9a2596173f80c9","matched":true,"value":60},{"id":"run-browser-2#case-26-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-027","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls/0/restoredActual","valueSha256":"48449a14a4ff7d79bb7a1b6f3d488eba397c36ef25634c111b49baf362511afc","matched":true,"value":80},{"id":"run-browser-2#case-26-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-027","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-26-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-027","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-26-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-027","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-26-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-027","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-26-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-26-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/quality/cleanup/resources","valueSha256":"a16ea8d8cdcbeb63a958bc39f78383e5dc9fffdc7b037f44b14337168391506d","matched":true,"value":[{"id":"control-case-027-board-resave-retains-old-load","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":127}]},{"id":"run-browser-2#case-26-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-26-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-26-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-26-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-26-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-26-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-26-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-26-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-26-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/startedAt","valueSha256":"076e6865325247f5e24394e55ef95ca48457cfbe189a7f6fc7d2148ba43d3f6c","matched":true,"value":"2026-09-09T20:04:23.329Z"},{"id":"run-browser-2#case-26-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/finishedAt","valueSha256":"a00144b8469cdab0f6ea1a4b517a7cc609d79130643b7cfba325a5637fcee7f0","matched":true,"value":"2026-09-09T20:04:29.673Z"},{"id":"run-browser-2#case-26-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-26-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-26-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-027","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-26-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/pages/0/pageClosed","valueSha256":"1760ec2bae829645e0d44b02d45dedcbd67ef9e7eb9f8c80f9fc8c8ef3d27b6b","matched":true,"value":{"sequence":220,"pendingRequestIds":[]}},{"id":"run-browser-2#case-26-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/pages/0/routeCleanup","valueSha256":"bfc65270d61d46d50f86702ee7ccba9d0b87c790d141a7000484008859d68354","matched":true,"value":[{"startedSequence":218,"status":"completed","completedSequence":219}]},{"id":"run-browser-2#case-26-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/pages/0/observerDisposal","valueSha256":"36c5dbabbef1e76fe180f4d0e25cbd667dd771a09d25e53abd26c6b8e040c98d","matched":true,"value":{"status":"completed","closeSequence":220,"startedSequence":221,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":222}},{"id":"run-browser-2#case-26-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-26-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-027","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/11/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-27-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-028","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/12/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"38b3642ecec1db9936dbcfde078967b4cb41bdaf5188a745fc7c523b619acb49","matched":true,"value":8319},{"id":"run-browser-2#case-27-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-028","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/checkpoints","valueSha256":"447f2a2980bce968c700c6f8ca419dd123f8546c295caac8f4ea3ea21c00e16d","matched":true,"value":[{"id":"auto-save-through-confirm-card","passed":true,"assertions":27},{"id":"back-one-more-set-resave","passed":true,"assertions":20},{"id":"reload-reentry","passed":true,"assertions":18},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-27-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-028","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-27-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-028","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-27-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-028","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-27-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-028","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-27-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-028","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/checkpoints","valueSha256":"447f2a2980bce968c700c6f8ca419dd123f8546c295caac8f4ea3ea21c00e16d","matched":true,"value":[{"id":"auto-save-through-confirm-card","passed":true,"assertions":27},{"id":"back-one-more-set-resave","passed":true,"assertions":20},{"id":"reload-reentry","passed":true,"assertions":18},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-2#case-27-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-27-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-028","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/completion","valueSha256":"d1989ba039950ae93f955dc7e935e6226081bb5f62471dd2970b643a81aa6fb9","matched":true,"value":{"caseId":"CASE-028","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"authenticated-api-rpc":1,"frontend-state":2,"postgresql-readback":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-2#case-27-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-028","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls","valueSha256":"dc31435ebe27eba586afe0d8ed2dbe5763c563f0959368cded4e0dde40f06393","matched":true,"value":[{"id":"case-028-resave-drops-original-two-sets-on-reentry","description":"한 세트 더 기록하고 재저장한 뒤 reload 상세에는 60×5 두 개와 70×5 한 개가 모두 보여야 한다.","boundary":"dom","status":"passed","expected":[{"load":60,"reps":5},{"load":60,"reps":5},{"load":70,"reps":5}],"comparator":{"kind":"deepEqual"},"normalActual":[{"load":60,"reps":5},{"load":60,"reps":5},{"load":70,"reps":5}],"normal":{"matched":true},"negativeActual":[{"load":70,"reps":5}],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":[{"load":60,"reps":5},{"load":60,"reps":5},{"load":70,"reps":5}],"restored":{"matched":true},"durationMs":25}]},{"id":"run-browser-2#case-27-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-028","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls/0/normalActual","valueSha256":"3a1c1011da65cacbd6fb44ec242733d6d965f617ecb669741bd8ab27a0e67480","matched":true,"value":[{"load":60,"reps":5},{"load":60,"reps":5},{"load":70,"reps":5}]},{"id":"run-browser-2#case-27-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-028","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls/0/negativeActual","valueSha256":"e35f07066a4f586e0d5337d158314bab2d72cef1fb83884cf8580ab436a0935d","matched":true,"value":[{"load":70,"reps":5}]},{"id":"run-browser-2#case-27-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-028","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls/0/restoredActual","valueSha256":"3a1c1011da65cacbd6fb44ec242733d6d965f617ecb669741bd8ab27a0e67480","matched":true,"value":[{"load":60,"reps":5},{"load":60,"reps":5},{"load":70,"reps":5}]},{"id":"run-browser-2#case-27-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-028","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-27-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-028","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-27-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-028","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-27-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-028","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-27-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-27-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/quality/cleanup/resources","valueSha256":"d91b1c0542a49627764047948596d71876d57408d89e0737ac6bc59133e80e62","matched":true,"value":[{"id":"case-028-finish-card-recorder","status":"passed","settled":true,"durationMs":1},{"id":"control-case-028-resave-drops-original-two-sets-on-reentry","status":"passed","settled":true,"durationMs":4},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":85}]},{"id":"run-browser-2#case-27-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/ownedPageListeners","valueSha256":"53880f56a1f7a434efd6fe0119a80ef432cb6719a75b8d74fa2f7caabf91b1ef","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-27-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-27-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-27-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-27-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-27-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-27-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-27-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-27-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/startedAt","valueSha256":"2deae544828e482460c4abd59e0c3779760ea884c231defabbbba7790b9fe24d","matched":true,"value":"2026-09-09T20:04:29.984Z"},{"id":"run-browser-2#case-27-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/finishedAt","valueSha256":"813858ded8beb50ea519350e9164e084233d2bb48a53f4429815060fe997582c","matched":true,"value":"2026-09-09T20:04:38.203Z"},{"id":"run-browser-2#case-27-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-27-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-27-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-028","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-27-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/pages/0/pageClosed","valueSha256":"b1e520832c4fc28d1c9b50338863eea2a6a5de47fbefa639271567fb94102829","matched":true,"value":{"sequence":230,"pendingRequestIds":[]}},{"id":"run-browser-2#case-27-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/pages/0/routeCleanup","valueSha256":"128c538e383373ed99a9506d819481c7b590db161c1d013d01525a2b511add6f","matched":true,"value":[{"startedSequence":228,"status":"completed","completedSequence":229}]},{"id":"run-browser-2#case-27-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/pages/0/observerDisposal","valueSha256":"de5467debd7896cc2aa25b3fdd6b43c7dcf25d1097f4e8f23f9d523368c1c9a4","matched":true,"value":{"status":"completed","closeSequence":230,"startedSequence":231,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":232}},{"id":"run-browser-2#case-27-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-27-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-028","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/12/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-029","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-2/error-cases.json","artifactSha256":"a40ac64fdbdd994bedfd5dbcfec889ae4758095f6f18c6d71e0c0f142c1b2cb7","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"ee006519acf5ee196d51f524f7e098772fb42b03aefdc09c7a463d2646f14705","matched":true,"value":21111},{"id":"run-browser-2#case-28-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-029","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/checkpoints","valueSha256":"f8ea989acf5356ea93b023f50beb3f38f0da4640c3c1addcd61f6ef23aaa61bb","matched":true,"value":[{"id":"online-baseline","passed":true,"assertions":24},{"id":"edit-queued-on-device","passed":true,"assertions":39},{"id":"edit-flushed-after-recovery","passed":true,"assertions":16},{"id":"delete-queued-on-device","passed":true,"assertions":25},{"id":"delete-flushed-and-reload","passed":true,"assertions":19},{"id":"planned-edit-kept-on-device","passed":true,"assertions":31},{"id":"planned-edit-replayed-and-reentry","passed":true,"assertions":38},{"id":"journey-completion","passed":true,"assertions":21}]},{"id":"run-browser-2#case-28-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-029","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-029","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-029","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-029","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/id","valueSha256":"9307bac2a0c9ee2778e40dbd09a3773fbec9522047117d491fe3feaaabcedb58","matched":true,"value":"completed-session-update-first-attempt-503"},{"id":"run-browser-2#case-28-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-2#case-28-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-2#case-28-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-2#case-28-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-2#case-28-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-2#case-28-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-2#case-28-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-fault-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/id","valueSha256":"6d9fa4574b1fdd3c2f741c65316ce90d66eb4fd5a04b98c9a09edbaf1b7ef7f2","matched":true,"value":"completed-session-delete-first-attempt-503"},{"id":"run-browser-2#case-28-fault-1-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-2#case-28-fault-1-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/path","valueSha256":"49ff52b9508f42fd1c8b1ce812948fcc03db46bd1aa9bed0ca0beccd418a0274","matched":true,"value":"/rest/v1/rpc/delete_session_v5"},{"id":"run-browser-2#case-28-fault-1-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-2#case-28-fault-1-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-2#case-28-fault-1-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-2#case-28-fault-1-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-2#case-28-fault-1-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-fault-1-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-fault-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/id","valueSha256":"bc699d4ba332c2de5fb45b499752d3fbfd2e307ed3c574c94af89e0aebee10ca","matched":true,"value":"planned-edit-first-direct-attempt-503"},{"id":"run-browser-2#case-28-fault-2-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-2#case-28-fault-2-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-2#case-28-fault-2-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-2#case-28-fault-2-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/requestCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-2#case-28-fault-2-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/requiredAttempts","valueSha256":"06d033ece6645de592db973644cf7357255f24536ff7b03c3b2ace10736f7636","matched":true,"value":[3]},{"id":"run-browser-2#case-28-fault-2-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/observedAttempts","valueSha256":"06d033ece6645de592db973644cf7357255f24536ff7b03c3b2ace10736f7636","matched":true,"value":[3]},{"id":"run-browser-2#case-28-fault-2-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-fault-2-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/expectedCount","valueSha256":"7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451","matched":true,"value":7},{"id":"run-browser-2#case-28-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/observedCount","valueSha256":"7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451","matched":true,"value":7},{"id":"run-browser-2#case-28-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/0/id","valueSha256":"c5533305daf3e644eee27ed0d21954a014fb6d03ddafdc3e17483bb4a7871569","matched":true,"value":"connectivity-entered-edit-outage"},{"id":"run-browser-2#case-28-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-2#case-28-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/1/id","valueSha256":"2658d779b53dc1433e727a69338d62a5270b46a2f071cb5762a757f7de46d9d7","matched":true,"value":"connectivity-exited-before-edit-flush"},{"id":"run-browser-2#case-28-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-2#case-28-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/2/id","valueSha256":"0ee7397be4385daa6e792b4bbf01f3a8eb2504342febdd215ba095f0f5dfa2da","matched":true,"value":"connectivity-entered-delete-outage"},{"id":"run-browser-2#case-28-required-event-2-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/2/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-2#case-28-required-event-2-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/2/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-2-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/2/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-3-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/3/id","valueSha256":"a8dc5f7582baac278c1f97be2ce58870e31801f8589ead900332824e02fc69ca","matched":true,"value":"connectivity-exited-before-delete-flush"},{"id":"run-browser-2#case-28-required-event-3-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/3/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-2#case-28-required-event-3-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/3/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-3-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/3/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-4-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/4/id","valueSha256":"dc98adc419dc5cb862a84395891bec919fcf8257b1a8cd6921426a2ba9648fc7","matched":true,"value":"planned-direct-save-failure"},{"id":"run-browser-2#case-28-required-event-4-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/4/operationName","valueSha256":"f2b38d284c60bb5383693f60aa8e573eac4135bd0c92d33acbea3510efa6a129","matched":true,"value":"save_session_v5"},{"id":"run-browser-2#case-28-required-event-4-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/4/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-4-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/4/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-5-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/5/id","valueSha256":"9a8d0d21e042d60e04cd0a89e1529f0f83deabcfe29ba6179ddcd1ad746fbdb4","matched":true,"value":"connectivity-entered-plan-edit-outage"},{"id":"run-browser-2#case-28-required-event-5-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/5/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-2#case-28-required-event-5-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/5/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-5-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/5/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-6-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/6/id","valueSha256":"dd5c6362126bcc0259d29b8e4f4bd9fcf522d2c9449575448e14f449bf74a0a2","matched":true,"value":"connectivity-exited-before-plan-flush"},{"id":"run-browser-2#case-28-required-event-6-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/6/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-2#case-28-required-event-6-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/6/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-required-event-6-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion/requiredObservationEvidence/records/6/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-029","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/checkpoints","valueSha256":"f8ea989acf5356ea93b023f50beb3f38f0da4640c3c1addcd61f6ef23aaa61bb","matched":true,"value":[{"id":"online-baseline","passed":true,"assertions":24},{"id":"edit-queued-on-device","passed":true,"assertions":39},{"id":"edit-flushed-after-recovery","passed":true,"assertions":16},{"id":"delete-queued-on-device","passed":true,"assertions":25},{"id":"delete-flushed-and-reload","passed":true,"assertions":19},{"id":"planned-edit-kept-on-device","passed":true,"assertions":31},{"id":"planned-edit-replayed-and-reentry","passed":true,"assertions":38},{"id":"journey-completion","passed":true,"assertions":21}]},{"id":"run-browser-2#case-28-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/rpcObservers","valueSha256":"f3d22f9f9ca5fc2032e64a86fb82d1f2b0eed40071c209532c99364eb3ea154c","matched":true,"value":[{"operation":"get_calendar_day_summary","generation":1,"completed":5,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":0,"method":"POST","settled":true,"failed":false},{"id":5,"generation":1,"method":"POST","settled":true,"failed":false},{"id":6,"generation":1,"method":"POST","settled":true,"failed":false},{"id":7,"generation":1,"method":"POST","settled":true,"failed":false},{"id":8,"generation":1,"method":"POST","settled":true,"failed":false},{"id":9,"generation":1,"method":"POST","settled":true,"failed":false}]},{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":1,"completed":5,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":0,"method":"POST","settled":true,"failed":false},{"id":5,"generation":0,"method":"POST","settled":true,"failed":false},{"id":6,"generation":0,"method":"POST","settled":true,"failed":false},{"id":7,"generation":1,"method":"POST","settled":true,"failed":false},{"id":8,"generation":1,"method":"POST","settled":true,"failed":false},{"id":9,"generation":1,"method":"POST","settled":true,"failed":false},{"id":10,"generation":1,"method":"POST","settled":true,"failed":false},{"id":11,"generation":1,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-2#case-28-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-029","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/completion","valueSha256":"7b2e2c293d393b7d231c2ce4c8fd54c0cf7171fdf3cf296e83650d0ec5aecaea","matched":true,"value":{"caseId":"CASE-029","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":5,"authenticated-api-rpc":5,"postgresql-readback":7,"frontend-state":5,"reload-reentry":2,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"completed-session-update-first-attempt-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":4,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]},{"id":"completed-session-delete-first-attempt-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/delete_session_v5","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]},{"id":"planned-edit-first-direct-attempt-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":null,"attemptWindow":{"first":3,"last":3},"requestCount":4,"requiredAttempts":[3],"observedAttempts":[3],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"completed-session-update-first-attempt-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56921/rest/v1/rpc/save_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"completed-session-delete-first-attempt-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/delete_session_v5","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56921/rest/v1/rpc/delete_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"planned-edit-first-direct-attempt-503","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":3,"url":"http://127.0.0.1:56921/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":7,"observedCount":7,"records":[{"sequence":1,"id":"connectivity-entered-edit-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"e18bdba1-7a5c-4059-b6ad-4897f2ca20ce","operationId":"tab:54cd8cca-c401-49f1-8d90-9ced8ed6ddee:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-exited-before-edit-flush","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"d28cf3ce-ea12-469d-a309-83a3e79bbb0e","operationId":"tab:54cd8cca-c401-49f1-8d90-9ced8ed6ddee:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true},{"sequence":3,"id":"connectivity-entered-delete-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"d4ac56e9-39f8-4eaf-80e6-324c48a99772","operationId":"tab:54cd8cca-c401-49f1-8d90-9ced8ed6ddee:event:2","receiptStored":true,"storedRowVerified":true},{"sequence":4,"id":"connectivity-exited-before-delete-flush","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"65f799ac-a661-4857-8849-19627972c5cb","operationId":"tab:54cd8cca-c401-49f1-8d90-9ced8ed6ddee:1:6:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true},{"sequence":5,"id":"planned-direct-save-failure","repetition":1,"operationName":"save_session_v5","diagnosticKey":"rpc_failure","clientEventId":"66dd09ad-2911-4aeb-844e-b263a8d31624","operationId":"rpc:save_session_v5:c5b923c2-21d0-4c95-ae96-68ea5570b200","receiptStored":true,"storedRowVerified":true},{"sequence":6,"id":"connectivity-entered-plan-edit-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"bb77484f-4efa-48f5-92bc-7c84d6ce5873","operationId":"tab:cce7fc35-6af4-4b50-b868-dfa1fc358e70:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":7,"id":"connectivity-exited-before-plan-flush","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"1e7f6b3d-5a2d-413b-9ae1-bb7ee777cd4d","operationId":"tab:cce7fc35-6af4-4b50-b868-dfa1fc358e70:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-2#case-28-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-029","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls","valueSha256":"5ae834f73647072489f6feedf4f5f8cf47d40d4dd55402a1d6866039b6d76d8b","matched":true,"value":[{"id":"case-029-failed-update-loses-durable-pending-row","description":"실제 update 503 뒤 UI가 닫혀도 수정의 owner pending row 1개와 준비 request가 기기에 남아야 한다.","boundary":"indexeddb","status":"passed","expected":1,"comparator":{"kind":"deepEqual"},"normalActual":1,"normal":{"matched":true},"negativeActual":0,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":1,"restored":{"matched":true},"durationMs":30}]},{"id":"run-browser-2#case-28-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-029","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls/0/normalActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-28-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-029","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls/0/negativeActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-28-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-029","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls/0/restoredActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-28-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-029","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-029","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-2#case-28-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-029","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-28-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-029","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-2#case-28-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/quality/cleanup/resources","valueSha256":"1738bf14fe143c42a6e7b6e3de63053ca68a76f14fa4f1f690fa3eff611fa816","matched":true,"value":[{"id":"control-case-029-failed-update-loses-durable-pending-row","status":"passed","settled":true,"durationMs":7},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":75},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":0},{"id":"rpc-observer-2","status":"passed","settled":true,"durationMs":1}]},{"id":"run-browser-2#case-28-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/ownedPageListeners","valueSha256":"21d3af605112525834fc7d2f76394518b3f618ce7490ea060a2e682d20a5bbba","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-2#case-28-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-2#case-28-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-2#case-28-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-2#case-28-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-2#case-28-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-2#case-28-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-2#case-28-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-2#case-28-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/startedAt","valueSha256":"8b0c4a05c40daa500c209c1b9bfcf175fa8ceb9a854b0cc3346ea84a085069df","matched":true,"value":"2026-09-09T20:04:38.519Z"},{"id":"run-browser-2#case-28-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/finishedAt","valueSha256":"76119f035939ec3686ca9722cef50765280048ac5aef634095386fc993b1b2a1","matched":true,"value":"2026-09-09T20:04:59.541Z"},{"id":"run-browser-2#case-28-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-2#case-28-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-2#case-28-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-029","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-2#case-28-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/pages/0/pageClosed","valueSha256":"dad08f8b46b7a0d7b1b3d012107588a40b7d3332db1afb6684df63f7bc4212bf","matched":true,"value":{"sequence":477,"pendingRequestIds":[]}},{"id":"run-browser-2#case-28-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/pages/0/routeCleanup","valueSha256":"005966455bd5a84468808fac6bddf5ecea1758632ade3de145a6f5b26eec1e8e","matched":true,"value":[{"startedSequence":475,"status":"completed","completedSequence":476}]},{"id":"run-browser-2#case-28-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/pages/0/observerDisposal","valueSha256":"c2541e52ba2924ce0fb2273be7ccd09843c2ac633b054293ad7ff27a309830e4","matched":true,"value":{"status":"completed","closeSequence":477,"startedSequence":478,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":479}},{"id":"run-browser-2#case-28-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-2#case-28-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-029","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-2/browser-2-of-4.e2e-evidence.json","artifactSha256":"6103acf7bf304064be7b1988f3a806d7bdd7d43677d8733d8a2297d6358b0f56","pointer":"/results/13/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-29-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-030","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-29-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-030","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-29-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-030","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-29-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-030","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"09c517a3b56dc0508ec28a3c44fc00b31244d1e60313e12b1c26c0cf0b343661","matched":true,"value":6160},{"id":"run-browser-3#case-29-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-030","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/checkpoints","valueSha256":"c5511824b36b0f4d233a08fc3fd15bcfa01a87b0f82e729ec8219d52279b2c7d","matched":true,"value":[{"id":"assisted-set-record-and-save","passed":true,"assertions":30},{"id":"reload-reentry","passed":true,"assertions":14},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-3#case-29-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-030","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-29-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-030","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-29-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-030","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-29-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-030","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-29-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-030","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/checkpoints","valueSha256":"c5511824b36b0f4d233a08fc3fd15bcfa01a87b0f82e729ec8219d52279b2c7d","matched":true,"value":[{"id":"assisted-set-record-and-save","passed":true,"assertions":30},{"id":"reload-reentry","passed":true,"assertions":14},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-3#case-29-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-29-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-030","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/completion","valueSha256":"38b233c8e7cf7d5e419571e2e818f49903bbb33f71a3dc1c5d0817624e2d76f0","matched":true,"value":{"caseId":"CASE-030","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"authenticated-api-rpc":1,"frontend-state":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-29-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-030","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls","valueSha256":"657114d57aec5fd2215c35efc987c41fbd1b7e2055416ac74215ae08f7e93184","matched":true,"value":[{"id":"case030-purpose-control","description":"보조 20kg을 유효 부하 60kg 대신 그대로 저장하는 계산 결함","boundary":"http-response","status":"passed","expected":60,"comparator":{"kind":"deepEqual"},"normalActual":60,"normal":{"matched":true},"negativeActual":20,"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":60,"restored":{"matched":true},"durationMs":50}]},{"id":"run-browser-3#case-29-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-030","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls/0/normalActual","valueSha256":"39fa9ec190eee7b6f4dff1100d6343e10918d044c75eac8f9e9a2596173f80c9","matched":true,"value":60},{"id":"run-browser-3#case-29-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-030","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls/0/negativeActual","valueSha256":"f5ca38f748a1d6eaf726b8a42fb575c3c71f1864a8143301782de13da2d9202b","matched":true,"value":20},{"id":"run-browser-3#case-29-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-030","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls/0/restoredActual","valueSha256":"39fa9ec190eee7b6f4dff1100d6343e10918d044c75eac8f9e9a2596173f80c9","matched":true,"value":60},{"id":"run-browser-3#case-29-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-030","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-29-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-030","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-29-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-030","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-29-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-030","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-29-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-29-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/quality/cleanup/resources","valueSha256":"7dd343a287a827aca71cabcf9d70e02c6f41aaa9bf3438034cb7e00e69a8d622","matched":true,"value":[{"id":"control-case030-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":80}]},{"id":"run-browser-3#case-29-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-29-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-29-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-29-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-29-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-29-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-29-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-29-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-29-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/startedAt","valueSha256":"8c296ac74d4d26e4de6a23f2023c0a81997700b463e184ded93d33c09b75db7e","matched":true,"value":"2026-09-09T20:03:00.780Z"},{"id":"run-browser-3#case-29-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/finishedAt","valueSha256":"20624e57c79d881d118c4a007c3790ea10ffee6e6ac10e3973775358b7db9663","matched":true,"value":"2026-09-09T20:03:06.811Z"},{"id":"run-browser-3#case-29-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-29-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-29-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-030","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-29-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/pages/0/pageClosed","valueSha256":"5a198e974bc0ecf8a9d227f54119bb7041c278450be4784fd81228258f0a0224","matched":true,"value":{"sequence":167,"pendingRequestIds":[]}},{"id":"run-browser-3#case-29-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/pages/0/routeCleanup","valueSha256":"4665a5c13893f09565f83a443cc00bbc32620b718ac0fc79ea4c0df87a8e90d4","matched":true,"value":[{"startedSequence":165,"status":"completed","completedSequence":166}]},{"id":"run-browser-3#case-29-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/pages/0/observerDisposal","valueSha256":"409afe28f53d5752995d60667a15365ab30c5da43e7998b2ec2f416f270bf984","matched":true,"value":{"status":"completed","closeSequence":167,"startedSequence":168,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":169}},{"id":"run-browser-3#case-29-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-29-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-030","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/0/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-30-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-031","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-30-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-031","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-30-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-031","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-30-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-031","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"8399b3c2cd89bea1df4bfe866e7daa5c0e99c93cf2b207c88d134c62ad25ed26","matched":true,"value":6544},{"id":"run-browser-3#case-30-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-031","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/checkpoints","valueSha256":"b02c680022375e4df53076bc232f9d97ea4f57a6fc7c133a57e03becc74132ae","matched":true,"value":[{"id":"custom-registration-with-multiplier","passed":true,"assertions":13},{"id":"live-set-effective-load","passed":true,"assertions":26},{"id":"reload-reentry","passed":true,"assertions":14},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-3#case-30-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-031","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-30-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-031","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-30-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-031","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-30-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-031","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-30-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-031","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/checkpoints","valueSha256":"b02c680022375e4df53076bc232f9d97ea4f57a6fc7c133a57e03becc74132ae","matched":true,"value":[{"id":"custom-registration-with-multiplier","passed":true,"assertions":13},{"id":"live-set-effective-load","passed":true,"assertions":26},{"id":"reload-reentry","passed":true,"assertions":14},{"id":"journey-completion","passed":true,"assertions":15}]},{"id":"run-browser-3#case-30-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-30-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-031","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/completion","valueSha256":"c30e3e790171aaba364b8be2c8bae321d80021e62c59b8f193cc2eba95916734","matched":true,"value":{"caseId":"CASE-031","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"authenticated-api-rpc":1,"frontend-state":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-30-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-031","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls","valueSha256":"28bf5ef18290c0d9b3f1a903feec9365b966ce2fd10c3d14c925796f8912696e","matched":true,"value":[{"id":"case031-purpose-control","description":"덤벨 2개 배수를 무시해 유효 부하가 40kg 대신 20kg이 되는 결함","boundary":"http-response","status":"passed","expected":40,"comparator":{"kind":"deepEqual"},"normalActual":40,"normal":{"matched":true},"negativeActual":20,"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":40,"restored":{"matched":true},"durationMs":48}]},{"id":"run-browser-3#case-30-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-031","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls/0/normalActual","valueSha256":"d59eced1ded07f84c145592f65bdf854358e009c5cd705f5215bf18697fed103","matched":true,"value":40},{"id":"run-browser-3#case-30-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-031","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls/0/negativeActual","valueSha256":"f5ca38f748a1d6eaf726b8a42fb575c3c71f1864a8143301782de13da2d9202b","matched":true,"value":20},{"id":"run-browser-3#case-30-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-031","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls/0/restoredActual","valueSha256":"d59eced1ded07f84c145592f65bdf854358e009c5cd705f5215bf18697fed103","matched":true,"value":40},{"id":"run-browser-3#case-30-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-031","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-30-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-031","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-30-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-031","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-30-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-031","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-30-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-30-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/quality/cleanup/resources","valueSha256":"9c3fb6e7c616024a20ee2a40c81dc6f3d6e1fe261ecb369ca766869f18e4bf05","matched":true,"value":[{"id":"control-case031-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":95}]},{"id":"run-browser-3#case-30-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-30-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-30-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-30-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-30-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-30-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-30-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-30-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-30-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/startedAt","valueSha256":"fa7c0fddf0b342d0bb6f2163a419469c6e37d5d0a7945bec91b3bd58112f8b5b","matched":true,"value":"2026-09-09T20:03:07.174Z"},{"id":"run-browser-3#case-30-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/finishedAt","valueSha256":"9fcbc3a2177b662675016f17b962ff933adf0ce6fde53ab750aff402faab6fe7","matched":true,"value":"2026-09-09T20:03:13.601Z"},{"id":"run-browser-3#case-30-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-30-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-30-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-031","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-30-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/pages/0/pageClosed","valueSha256":"39b21619a8df23b28d2922705c6ddb0393303ddb755c0becd8c9cd6cd5077c66","matched":true,"value":{"sequence":182,"pendingRequestIds":[]}},{"id":"run-browser-3#case-30-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/pages/0/routeCleanup","valueSha256":"11c95b185057b037e57f2849fbd2ed20c1b6f07fe1296311b52c8824818a0b4f","matched":true,"value":[{"startedSequence":180,"status":"completed","completedSequence":181}]},{"id":"run-browser-3#case-30-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/pages/0/observerDisposal","valueSha256":"7e2e6cc349a3e298a90a82ca7b8959e4060bc4e8bd4bb465446486e327b13c3a","matched":true,"value":{"status":"completed","closeSequence":182,"startedSequence":183,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":184}},{"id":"run-browser-3#case-30-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-30-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-031","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/1/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-032","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-31-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-032","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-31-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-032","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-31-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-032","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"5075680b7c1d11d02fb0e17eab6749c224d39f7112d2c097c0cea77ad95a49a7","matched":true,"value":5991},{"id":"run-browser-3#case-31-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-032","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/checkpoints","valueSha256":"e33ac10e8ddb2f16033bf693f5e5c1e103fb56752e44c43ff126364f76f5196e","matched":true,"value":[{"id":"online-baseline","passed":true,"assertions":21},{"id":"delete-closes-before-response","passed":true,"assertions":10},{"id":"delete-reaches-server-once","passed":true,"assertions":6},{"id":"reload-keeps-record-absent","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":16}]},{"id":"run-browser-3#case-31-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-032","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-032","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-032","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-032","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-032","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/checkpoints","valueSha256":"e33ac10e8ddb2f16033bf693f5e5c1e103fb56752e44c43ff126364f76f5196e","matched":true,"value":[{"id":"online-baseline","passed":true,"assertions":21},{"id":"delete-closes-before-response","passed":true,"assertions":10},{"id":"delete-reaches-server-once","passed":true,"assertions":6},{"id":"reload-keeps-record-absent","passed":true,"assertions":9},{"id":"journey-completion","passed":true,"assertions":16}]},{"id":"run-browser-3#case-31-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/rpcObservers","valueSha256":"e9f59856047b593626d47d7aecc0073517ea1409179c92635f67aff4ad5a30e7","matched":true,"value":[{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":0,"completed":6,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":0,"method":"POST","settled":true,"failed":false},{"id":5,"generation":0,"method":"POST","settled":true,"failed":false},{"id":6,"generation":0,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-3#case-31-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-032","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/completion","valueSha256":"a36fd86bced7d2e3685b9fa5717b8cfa07bd577da76158e595f8d6a7dcb89d3f","matched":true,"value":{"caseId":"CASE-032","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":2,"authenticated-api-rpc":2,"postgresql-readback":2,"frontend-state":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-31-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-032","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls","valueSha256":"8cafb353c97bd1e560861c77de7d8148b741297c7bfe2968fb288115ba4c9d41","matched":true,"value":[{"id":"case032-purpose-control","description":"기록 삭제 후 자식 세트가 남는 삭제 불완전성","boundary":"http-response","status":"passed","expected":[],"comparator":{"kind":"deepEqual"},"normalActual":[],"normal":{"matched":true},"negativeActual":[{"id":"f8e4591a-3397-4898-a397-7022b2c324b4"}],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":[],"restored":{"matched":true},"durationMs":11}]},{"id":"run-browser-3#case-31-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-032","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls/0/normalActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-032","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls/0/negativeActual","valueSha256":"5b0202d30a7652f669b40a5790320bdfb70342cf45b829d40ba5cf1d7161a9cd","matched":true,"value":[{"id":"f8e4591a-3397-4898-a397-7022b2c324b4"}]},{"id":"run-browser-3#case-31-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-032","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls/0/restoredActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-032","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-31-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-032","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-31-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-032","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-31-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-032","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-31-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-31-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/quality/cleanup/resources","valueSha256":"255d4070b637514229f4274de8bf6597f4a9e0df25636ab65f0e8fe6da685990","matched":true,"value":[{"id":"control-case032-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":77},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":1}]},{"id":"run-browser-3#case-31-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-31-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-31-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-31-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-31-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-31-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-31-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-31-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-31-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/startedAt","valueSha256":"d27672b2abc8f8a1817e3dc28d520d76a024224a992256e1686a8a0e634bc2bb","matched":true,"value":"2026-09-09T20:03:13.804Z"},{"id":"run-browser-3#case-31-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/finishedAt","valueSha256":"1c2a8a9709c21abdcbc531a8a67c61aa024cee17c27703eddf9082a9a17dc70d","matched":true,"value":"2026-09-09T20:03:19.718Z"},{"id":"run-browser-3#case-31-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-31-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-31-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-032","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-31-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/pages/0/pageClosed","valueSha256":"65c0275af00aad3d88264cf8c6c325c4569ee4cbebe563de6e8339dc9ff5abe5","matched":true,"value":{"sequence":197,"pendingRequestIds":[]}},{"id":"run-browser-3#case-31-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/pages/0/routeCleanup","valueSha256":"67a49107288e746eb93993b79e4ad50b5bf663f279ef75a2bd244a40e0691aad","matched":true,"value":[{"startedSequence":195,"status":"completed","completedSequence":196}]},{"id":"run-browser-3#case-31-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/pages/0/observerDisposal","valueSha256":"bda350d2ad79b436658c6bc97f8a90ba3942ee1d306df715c7adaee2e82fc3d2","matched":true,"value":{"status":"completed","closeSequence":197,"startedSequence":198,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":199}},{"id":"run-browser-3#case-31-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-31-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-032","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/2/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-32-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-033","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-32-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-033","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-32-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-033","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-32-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-033","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"40b33296b9624bb860505fafaf69114a4ac9a28e9610fc0a2e0ec495e9e51bef","matched":true,"value":13835},{"id":"run-browser-3#case-32-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-033","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/checkpoints","valueSha256":"1cc90d0621d1b7ccd554668640432a98d02a1845e4c2274951288d8a00a0728c","matched":true,"value":[{"id":"composite-save-five-layers","passed":true,"assertions":30},{"id":"edit-add-sets-day-count","passed":true,"assertions":26},{"id":"edit-delete-set-day-count","passed":true,"assertions":16},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-3#case-32-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-033","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-32-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-033","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-32-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-033","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-32-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-033","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-32-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-033","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/checkpoints","valueSha256":"1cc90d0621d1b7ccd554668640432a98d02a1845e4c2274951288d8a00a0728c","matched":true,"value":[{"id":"composite-save-five-layers","passed":true,"assertions":30},{"id":"edit-add-sets-day-count","passed":true,"assertions":26},{"id":"edit-delete-set-day-count","passed":true,"assertions":16},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-3#case-32-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/rpcObservers","valueSha256":"cc3536165f77a55215ad35beaef40e1bac9d2916bfd1f8865f5044591825c8e6","matched":true,"value":[{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":2,"completed":2,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":1,"method":"POST","settled":true,"failed":false},{"id":5,"generation":1,"method":"POST","settled":true,"failed":false},{"id":6,"generation":1,"method":"POST","settled":true,"failed":false},{"id":7,"generation":2,"method":"POST","settled":true,"failed":false},{"id":8,"generation":2,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-3#case-32-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-033","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/completion","valueSha256":"87fab7f07b180c6bdef6a8e95f57cd1eabf392e8f8b75776c5e5d0576c0bef98","matched":true,"value":{"caseId":"CASE-033","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":3,"rendered-user-journey":1,"frontend-state":3,"postgresql-readback":3,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-32-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-033","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls","valueSha256":"4d01e59d901d941b564bfb969bb706c20bec20344d0c9d9aaad83f210813d1f7","matched":true,"value":[{"id":"case033-purpose-control","description":"복합 운동 세트 삭제 후 세 번째 세트가 남는 결함","boundary":"http-response","status":"passed","expected":[1,2],"comparator":{"kind":"deepEqual"},"normalActual":[1,2],"normal":{"matched":true},"negativeActual":[1,2,3],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set"}},"restoredActual":[1,2],"restored":{"matched":true},"durationMs":77}]},{"id":"run-browser-3#case-32-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-033","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls/0/normalActual","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-3#case-32-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-033","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls/0/negativeActual","valueSha256":"a615eeaee21de5179de080de8c3052c8da901138406ba71c38c032845f7d54f4","matched":true,"value":[1,2,3]},{"id":"run-browser-3#case-32-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-033","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls/0/restoredActual","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-3#case-32-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-033","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-32-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-033","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-32-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-033","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-32-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-033","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-32-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-32-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/quality/cleanup/resources","valueSha256":"72d5b4f244a94728d715930554894e1b9ea71dc308de17789ae80015d96b59d3","matched":true,"value":[{"id":"control-case033-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":100},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":1}]},{"id":"run-browser-3#case-32-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-32-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-32-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-32-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-32-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-32-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-32-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-32-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-32-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/startedAt","valueSha256":"e689d48bf41b8a9834363a5ea2fc9cc9851a6ad96a6de22472bf8043e9eddae7","matched":true,"value":"2026-09-09T20:03:19.956Z"},{"id":"run-browser-3#case-32-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/finishedAt","valueSha256":"e0e569af00657f4833e4f2eac925e62379e4db7d75147a5e3d9fd81f4088c0f1","matched":true,"value":"2026-09-09T20:03:33.693Z"},{"id":"run-browser-3#case-32-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-32-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-32-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-033","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-32-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/pages/0/pageClosed","valueSha256":"3c4e24438b0baac071557fdc2582274b546890a2d558accc0e6d610be849f971","matched":true,"value":{"sequence":242,"pendingRequestIds":[]}},{"id":"run-browser-3#case-32-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/pages/0/routeCleanup","valueSha256":"cdded881224f9679cd1df6fe717700f9c5c8eaa844e51e8d3ad9b7207e1c2e8d","matched":true,"value":[{"startedSequence":240,"status":"completed","completedSequence":241}]},{"id":"run-browser-3#case-32-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/pages/0/observerDisposal","valueSha256":"2090ae57ca4d2a61a660c32ac4d8e1d4f8170fbef214fe06b136e41edeb6f7fb","matched":true,"value":{"status":"completed","closeSequence":242,"startedSequence":243,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":244}},{"id":"run-browser-3#case-32-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-32-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-033","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/3/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-33-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-034","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-33-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-034","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-33-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-034","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-33-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-034","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"3517a0cd78deae06eb49d785375fc4dd776b66196978dbbac164a67ccd648d64","matched":true,"value":8353},{"id":"run-browser-3#case-33-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-034","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/checkpoints","valueSha256":"3caa1675267ba909a25373f665cc84bc742d5d9883e41939b2911589075cdc33","matched":true,"value":[{"id":"plan-save-and-card","passed":true,"assertions":22},{"id":"partial-completion-transition","passed":true,"assertions":23},{"id":"card-gone-day-count","passed":true,"assertions":2},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-3#case-33-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-034","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-33-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-034","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-33-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-034","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-33-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-034","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-33-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-034","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/checkpoints","valueSha256":"3caa1675267ba909a25373f665cc84bc742d5d9883e41939b2911589075cdc33","matched":true,"value":[{"id":"plan-save-and-card","passed":true,"assertions":22},{"id":"partial-completion-transition","passed":true,"assertions":23},{"id":"card-gone-day-count","passed":true,"assertions":2},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-3#case-33-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/rpcObservers","valueSha256":"079b9a04f5eb79489c6469f39ba624d36cb5dc5cb2077f33d32880ca5e9288fd","matched":true,"value":[{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":1,"completed":3,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":1,"method":"POST","settled":true,"failed":false},{"id":2,"generation":1,"method":"POST","settled":true,"failed":false},{"id":3,"generation":1,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-3#case-33-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-034","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/completion","valueSha256":"9fbb18f904ee893fbb78ca5e1119cb6b464c946f21587b2106e35f155247de84","matched":true,"value":{"caseId":"CASE-034","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":2,"postgresql-readback":2,"authenticated-api-rpc":2,"reload-reentry":2,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-33-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-034","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls","valueSha256":"05afcaf5eae2019b833afe11a94807e9cfbb84a818a0fcd244a9ebb2086abe8d","matched":true,"value":[{"id":"case034-purpose-control","description":"부분 완료 후 계획이 completed로 전이되지 않고 planned로 남는 결함","boundary":"http-response","status":"passed","expected":["completed"],"comparator":{"kind":"deepEqual"},"normalActual":["completed"],"normal":{"matched":true},"negativeActual":["planned"],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/session"}},"restoredActual":["completed"],"restored":{"matched":true},"durationMs":14}]},{"id":"run-browser-3#case-33-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-034","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls/0/normalActual","valueSha256":"0cc7fbf0c671007c47985e35f8b29a3583f713557cd324eba14d7a73e2d8139d","matched":true,"value":["completed"]},{"id":"run-browser-3#case-33-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-034","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls/0/negativeActual","valueSha256":"d575155e606f82259b77361116788a9ccb326a13c05ef012f2ae745093031abe","matched":true,"value":["planned"]},{"id":"run-browser-3#case-33-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-034","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls/0/restoredActual","valueSha256":"0cc7fbf0c671007c47985e35f8b29a3583f713557cd324eba14d7a73e2d8139d","matched":true,"value":["completed"]},{"id":"run-browser-3#case-33-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-034","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-33-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-034","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-33-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-034","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-33-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-034","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-33-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-33-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/quality/cleanup/resources","valueSha256":"7d9d9efd31f43aaf01a2df33b458467a96be9d2f06df538e84a3888791e5f872","matched":true,"value":[{"id":"control-case034-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":106},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":1}]},{"id":"run-browser-3#case-33-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-33-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-33-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-33-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-33-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-33-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-33-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-33-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-33-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/startedAt","valueSha256":"aa3f54c1258dbdc237b3d3641c9622ae631d2878a5ce80d943db980e21e5ff28","matched":true,"value":"2026-09-09T20:03:33.965Z"},{"id":"run-browser-3#case-33-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/finishedAt","valueSha256":"bb5ab651892af5608b8d0f287e8d75935bc123f504224f13d8793fe58d6a67e1","matched":true,"value":"2026-09-09T20:03:42.184Z"},{"id":"run-browser-3#case-33-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-33-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-33-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-034","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-33-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/pages/0/pageClosed","valueSha256":"0fe303dd409a34c164adaca8e46d5a50f5718d8059c11f1e7bbb4bb182afeca5","matched":true,"value":{"sequence":244,"pendingRequestIds":[]}},{"id":"run-browser-3#case-33-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/pages/0/routeCleanup","valueSha256":"a344d82aacd47af28a9531e94918e8b13644dd64bc7dca2c2ef14d7eb2043070","matched":true,"value":[{"startedSequence":242,"status":"completed","completedSequence":243}]},{"id":"run-browser-3#case-33-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/pages/0/observerDisposal","valueSha256":"b25cfefab5093363bb6d49084687e61513720737cebc736b9297e581bb3938a3","matched":true,"value":{"status":"completed","closeSequence":244,"startedSequence":245,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":246}},{"id":"run-browser-3#case-33-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-33-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-034","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/4/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-035","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/5/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-34-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-035","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/5/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-34-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-035","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-34-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-035","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/5/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"0bf366a6fdd643807e24b567a94e9ab1f24ef87d9353b3248e2bc42503766275","matched":true,"value":8981},{"id":"run-browser-3#case-34-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-035","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/checkpoints","valueSha256":"9bf3135d7dac1dcc76bc080788afbcb39d54a8f3df44a390de4b94e430cfa538","matched":true,"value":[{"id":"board-as-planned-group-session","passed":true,"assertions":21},{"id":"member-start-and-origin","passed":true,"assertions":30},{"id":"group-day-sessions","passed":true,"assertions":2},{"id":"reload-reentry","passed":true,"assertions":6},{"id":"journey-completion","passed":true,"assertions":28}]},{"id":"run-browser-3#case-34-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-035","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-035","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-035","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-035","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-035","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/checkpoints","valueSha256":"9bf3135d7dac1dcc76bc080788afbcb39d54a8f3df44a390de4b94e430cfa538","matched":true,"value":[{"id":"board-as-planned-group-session","passed":true,"assertions":21},{"id":"member-start-and-origin","passed":true,"assertions":30},{"id":"group-day-sessions","passed":true,"assertions":2},{"id":"reload-reentry","passed":true,"assertions":6},{"id":"journey-completion","passed":true,"assertions":28}]},{"id":"run-browser-3#case-34-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-035","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/completion","valueSha256":"a02568e944e0554c23c7eb089bd31b9fd371b72699f7742b5e0eda8d1661c760","matched":true,"value":{"caseId":"CASE-035","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"authenticated-api-rpc":3,"rendered-user-journey":1,"frontend-state":2,"postgresql-readback":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-34-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-035","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls","valueSha256":"056fb7a0c6edc679edba4ebe4b5146012480560ba216cb0041146b31de595c07","matched":true,"value":[{"id":"case035-purpose-control","description":"멤버 개인 운동이 그룹 계획 소유로 잘못 분류되는 결함","boundary":"http-response","status":"passed","expected":null,"comparator":{"kind":"deepEqual"},"normalActual":null,"normal":{"matched":true},"negativeActual":"ffe14e13-6794-4616-8b38-8ba19d8e0831","negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/session"}},"restoredActual":null,"restored":{"matched":true},"durationMs":11}]},{"id":"run-browser-3#case-34-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-035","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls/0/normalActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-3#case-34-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-035","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls/0/negativeActual","valueSha256":"0d01f9351e76d67d1ef7905cfcab33cddad00dd51f13771bbc98bd7ec050e4b6","matched":true,"value":"ffe14e13-6794-4616-8b38-8ba19d8e0831"},{"id":"run-browser-3#case-34-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-035","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls/0/restoredActual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"run-browser-3#case-34-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-035","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-34-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-035","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-34-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-035","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-34-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-035","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-34-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-34-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/quality/cleanup/resources","valueSha256":"baa33553333dbca12d035a61355bf22b9e91a662b5b25f452e7ff22a199f4d6d","matched":true,"value":[{"id":"control-case035-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":92},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":3}]},{"id":"run-browser-3#case-34-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-34-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-34-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-34-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-34-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-34-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-34-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-34-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-34-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/startedAt","valueSha256":"eec4335919953cf6811785b046bac9f3c064a53428fbc6293c5f7025a55cad52","matched":true,"value":"2026-09-09T20:03:42.531Z"},{"id":"run-browser-3#case-34-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/finishedAt","valueSha256":"0f4b05ca55005f2313714c99932e8b5c09b7729b043d5661c2b853cce5572299","matched":true,"value":"2026-09-09T20:03:51.367Z"},{"id":"run-browser-3#case-34-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-34-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-34-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-035","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-34-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/0/pageClosed","valueSha256":"9c97532a354f0633f3a665ae964a5e777bec1ef986a3962ae2ef6f0a87f5f3e1","matched":true,"value":{"sequence":146,"pendingRequestIds":[]}},{"id":"run-browser-3#case-34-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/0/routeCleanup","valueSha256":"a89f77de34098dd1b73c0b5a13bffa5e6967bbc9d2954bb21770b745a32eecd7","matched":true,"value":[{"startedSequence":144,"status":"completed","completedSequence":145}]},{"id":"run-browser-3#case-34-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/0/observerDisposal","valueSha256":"ecc48df45048fabed4efae9012129556e682e37cd4432e47df419857bb513a83","matched":true,"value":{"status":"completed","closeSequence":146,"startedSequence":147,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":148}},{"id":"run-browser-3#case-34-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/1/pageClosed","valueSha256":"ceca90eefd03dd46e8bd09637ed5549a71657122da2f28c9318119058c2c2962","matched":true,"value":{"sequence":109,"pendingRequestIds":[]}},{"id":"run-browser-3#case-34-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/1/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/1/observerDisposal","valueSha256":"2c4e689558a0b6c59af50c64573bf2ddc19fb2471cf47c7851e265dc8c640f4c","matched":true,"value":{"status":"completed","closeSequence":109,"startedSequence":110,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":111}},{"id":"run-browser-3#case-34-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-34-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-035","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/5/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-036","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/6/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-35-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-036","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/6/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-35-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-036","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-35-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-036","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/6/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"dabec2a5f5a0fb8b456f787a7f34f8c59d521309a22db0c77db9ce02574d0b6d","matched":true,"value":8701},{"id":"run-browser-3#case-35-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-036","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/checkpoints","valueSha256":"899ad1605609771bd82bc478b564f8467568b114f21d5265fd50957e7950b3c8","matched":true,"value":[{"id":"v5-live-save","passed":true,"assertions":18},{"id":"retired-rpcs-answer-lg426","passed":true,"assertions":39},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"retired-contract-browser","passed":true,"assertions":27},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-3#case-35-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-036","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-036","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-036","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-036","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/id","valueSha256":"197fa325409d0dcba49bb3363d20cb58dda51ae5c3f9d21fa4d48f3da721281a","matched":true,"value":"retired-contract-browser-response"},{"id":"run-browser-3#case-35-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-35-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-3#case-35-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-3#case-35-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-35-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-35-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-35-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-35-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-35-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/records/0/id","valueSha256":"39f38b342534bf194655cab392120336813d102ced142fbe84a559d1055220e7","matched":true,"value":"retired-contract-isolation"},{"id":"run-browser-3#case-35-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"adc0135b80a41175b670852d43f585a565d2cd17d53e0a8486933c752ab15ae4","matched":true,"value":"isolate_pending_workout_save:LG426"},{"id":"run-browser-3#case-35-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-35-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-35-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-036","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/checkpoints","valueSha256":"899ad1605609771bd82bc478b564f8467568b114f21d5265fd50957e7950b3c8","matched":true,"value":[{"id":"v5-live-save","passed":true,"assertions":18},{"id":"retired-rpcs-answer-lg426","passed":true,"assertions":39},{"id":"reload-reentry","passed":true,"assertions":12},{"id":"retired-contract-browser","passed":true,"assertions":27},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-3#case-35-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-036","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/completion","valueSha256":"b70998667175b489efa015911ffd68b8e0941557913085a488ca904148f4995d","matched":true,"value":{"caseId":"CASE-036","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":2,"frontend-state":2,"postgresql-readback":3,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"retired-contract-browser-response","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":1,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"retired-contract-browser-response","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":"","attempt":1,"url":"http://127.0.0.1:57921/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"retired-contract-isolation","repetition":1,"operationName":"isolate_pending_workout_save:LG426","diagnosticKey":"rpc_failure","clientEventId":"36e2dd8f-052c-4450-8c91-47397adb8b4d","operationId":"","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-3#case-35-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-036","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls","valueSha256":"30debdc37f4a8448d0b9b1e45ee71e582e38cd1aa288baf81338f1dc2a62c830","matched":true,"value":[{"id":"case036-purpose-control","description":"퇴역 RPC가 LG426 대신 일반 오류를 반환하는 계약 회귀","boundary":"http-response","status":"passed","expected":"LG426","comparator":{"kind":"deepEqual"},"normalActual":"LG426","normal":{"matched":true},"negativeActual":"P0001","negative":{"matched":false,"applied":{"count":1,"method":"POST","path":"/rest/v1/rpc/delete_completed_session_v4"}},"restoredActual":"LG426","restored":{"matched":true},"durationMs":14}]},{"id":"run-browser-3#case-35-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-036","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls/0/normalActual","valueSha256":"97f4f52345b363ebb37372a55ecdf672c61f3a1959549f6844d6eb19cd669bc0","matched":true,"value":"LG426"},{"id":"run-browser-3#case-35-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-036","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls/0/negativeActual","valueSha256":"ce82b0cacec5ae2fa3e2710301fe480e8c21ad56d446bbda9499ac9e12e5e0db","matched":true,"value":"P0001"},{"id":"run-browser-3#case-35-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-036","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls/0/restoredActual","valueSha256":"97f4f52345b363ebb37372a55ecdf672c61f3a1959549f6844d6eb19cd669bc0","matched":true,"value":"LG426"},{"id":"run-browser-3#case-35-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-036","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-35-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-036","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-35-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-036","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-35-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-036","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-35-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-35-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/quality/cleanup/resources","valueSha256":"d7e3bfe82668afcf2c1e834355acad27f8c20716a31ec457167da20e3d0849bd","matched":true,"value":[{"id":"control-case036-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":68}]},{"id":"run-browser-3#case-35-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-35-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-35-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-35-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-35-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-35-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-35-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-35-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-35-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/startedAt","valueSha256":"207c167b0ee9e64a13638254ecbb70a9957ec66cce52529d5dfbbf226a11f4a3","matched":true,"value":"2026-09-09T20:03:51.654Z"},{"id":"run-browser-3#case-35-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/finishedAt","valueSha256":"75f5f4520eef5de6537aa2a5f7654b034e37d97d8d2324d993253a2a43e7d8f3","matched":true,"value":"2026-09-09T20:04:00.243Z"},{"id":"run-browser-3#case-35-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-35-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-35-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-036","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-35-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/pages/0/pageClosed","valueSha256":"1dbc93ff246df85ecb2a2638459538bf57e37b35211ce692a15a86ddfb9f443c","matched":true,"value":{"sequence":241,"pendingRequestIds":[]}},{"id":"run-browser-3#case-35-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/pages/0/routeCleanup","valueSha256":"e903c98cef837fa7379ef5786bb91c49828691f14193a49d8809a8ceaeaa131a","matched":true,"value":[{"startedSequence":239,"status":"completed","completedSequence":240}]},{"id":"run-browser-3#case-35-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/pages/0/observerDisposal","valueSha256":"333be899adaa5434f4f22f2e0b3af2eefa0b5c1c73c4b1feddb2a4ec11cfe270","matched":true,"value":{"status":"completed","closeSequence":241,"startedSequence":242,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":243}},{"id":"run-browser-3#case-35-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-35-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-036","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/6/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-36-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-037","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/7/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-36-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-037","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/7/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-36-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-037","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-36-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-037","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/7/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"bef1552cfd69363c11d4cfc3377ce60e19cb38dc5b4a62b0eed5cf7387d3dc37","matched":true,"value":3597},{"id":"run-browser-3#case-36-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-037","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/checkpoints","valueSha256":"c8289c75f6c5e92ae442f82c487ed887b810e7a17e664b516380c19fe8e21607","matched":true,"value":[{"id":"board-names-without-catalog","passed":true,"assertions":62},{"id":"names-stable-after-catalog","passed":true,"assertions":34},{"id":"reload-paints-names-first","passed":true,"assertions":53},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-3#case-36-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-037","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-36-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-037","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-36-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-037","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-36-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-037","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-36-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-037","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/checkpoints","valueSha256":"c8289c75f6c5e92ae442f82c487ed887b810e7a17e664b516380c19fe8e21607","matched":true,"value":[{"id":"board-names-without-catalog","passed":true,"assertions":62},{"id":"names-stable-after-catalog","passed":true,"assertions":34},{"id":"reload-paints-names-first","passed":true,"assertions":53},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-3#case-36-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-36-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-037","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/completion","valueSha256":"eb53dccdeeaba9a91645b538b43ab7f64a1b26641ea5ab12a8f1c0892b7bfe85","matched":true,"value":{"caseId":"CASE-037","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":2,"authenticated-api-rpc":1,"postgresql-readback":1,"frontend-state":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-36-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-037","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls","valueSha256":"3230c7d37382e1495851073d8d5896796d12f225fdb0f35adc4ca1b45b21a47e","matched":true,"value":[{"id":"case037-purpose-control","description":"카탈로그 대기 중 즐겨찾기에 운동 이름 대신 UUID가 보이는 결함","boundary":"dom","status":"passed","expected":"백스쿼트","comparator":{"kind":"deepEqual"},"normalActual":"백스쿼트","normal":{"matched":true},"negativeActual":"eece5e29-a057-5804-873d-2c7b862a987e","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"백스쿼트","restored":{"matched":true},"durationMs":71}]},{"id":"run-browser-3#case-36-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-037","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls/0/normalActual","valueSha256":"e1b6c7397f2b616dcc1dbe2743cbcd4fa662f965896b8e47020a483e66d16d17","matched":true,"value":"백스쿼트"},{"id":"run-browser-3#case-36-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-037","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls/0/negativeActual","valueSha256":"289529e1343741d471318e05df1692ef6903b7e0b4ade6dffda30cf3aceef3a4","matched":true,"value":"eece5e29-a057-5804-873d-2c7b862a987e"},{"id":"run-browser-3#case-36-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-037","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls/0/restoredActual","valueSha256":"e1b6c7397f2b616dcc1dbe2743cbcd4fa662f965896b8e47020a483e66d16d17","matched":true,"value":"백스쿼트"},{"id":"run-browser-3#case-36-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-037","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-36-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-037","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-36-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-037","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-36-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-037","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-36-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-36-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/quality/cleanup/resources","valueSha256":"92b4320b3cba9efa318fcff1a1b1b0c4f6f7163a60d95fb3c16fd20d4b0fafb3","matched":true,"value":[{"id":"control-case037-purpose-control","status":"passed","settled":true,"durationMs":4},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":75}]},{"id":"run-browser-3#case-36-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-36-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-36-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-36-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-36-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-36-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-36-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-36-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-36-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/startedAt","valueSha256":"5fd3ef0d863fd22ccf5519dbc737d6a68770be7b3c29f6c8cc80494f2e44e82c","matched":true,"value":"2026-09-09T20:04:00.536Z"},{"id":"run-browser-3#case-36-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/finishedAt","valueSha256":"cc88472ce6b94a41b87d807a183ee7682efe12c053f1d82462099f31330831ce","matched":true,"value":"2026-09-09T20:04:04.034Z"},{"id":"run-browser-3#case-36-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-36-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-36-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-037","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-36-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/pages/0/pageClosed","valueSha256":"d1d001bfbcd44018363f469933fecdec4f96de3ec3e645afa062bd3380ba18de","matched":true,"value":{"sequence":113,"pendingRequestIds":[]}},{"id":"run-browser-3#case-36-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/pages/0/routeCleanup","valueSha256":"8882fd6d98379dfc254d7e6fa784926f4cdb3b4ff4e6966c071c45edf704b0d7","matched":true,"value":[{"startedSequence":111,"status":"completed","completedSequence":112}]},{"id":"run-browser-3#case-36-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/pages/0/observerDisposal","valueSha256":"051c4afa305f8fbb66c9ce1a56bbf2e71405f8a7d059a00040ff484e826e607a","matched":true,"value":{"status":"completed","closeSequence":113,"startedSequence":114,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":115}},{"id":"run-browser-3#case-36-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-36-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-037","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/7/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-37-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/8/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-37-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/8/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-37-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-37-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-038","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/8/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"4b306dd84f65d96afdda2a7892c7ac74f79aef8b83783adaec6165bfe28e0151","matched":true,"value":12922},{"id":"run-browser-3#case-37-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/quality/checkpoints","valueSha256":"f229268f0c39d85eaa00a806854d9250848f9aa3daedd1cdc230647607c7bbe7","matched":true,"value":[{"id":"first-boot-full-catalog-once","passed":true,"assertions":11},{"id":"custom-exercise-one-change-page","passed":true,"assertions":35},{"id":"other-user-custom-no-request","passed":true,"assertions":25},{"id":"journey-completion","passed":true,"assertions":26}]},{"id":"run-browser-3#case-37-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-37-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-37-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-37-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-37-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-038","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/quality/checkpoints","valueSha256":"f229268f0c39d85eaa00a806854d9250848f9aa3daedd1cdc230647607c7bbe7","matched":true,"value":[{"id":"first-boot-full-catalog-once","passed":true,"assertions":11},{"id":"custom-exercise-one-change-page","passed":true,"assertions":35},{"id":"other-user-custom-no-request","passed":true,"assertions":25},{"id":"journey-completion","passed":true,"assertions":26}]},{"id":"run-browser-3#case-37-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-37-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/completion","valueSha256":"6045ae1fa70901e47b7d94e0055bdc4ec08273820a128549cd437567b8c607f6","matched":true,"value":{"caseId":"CASE-038","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":4,"authenticated-api-rpc":3,"frontend-state":3,"postgresql-readback":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-37-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/quality/controls","valueSha256":"bbc45cee4733c6fd4f17d507b3ebe59fadb3e71505b1a572c88cfd20b1f58bdf","matched":true,"value":[{"id":"case038-purpose-control","description":"다른 사용자의 커스텀 종목이 내 변경 피드에 누출되는 소유권 결함","boundary":"http-response","status":"passed","expected":false,"comparator":{"kind":"deepEqual"},"normalActual":false,"normal":{"matched":true},"negativeActual":true,"negative":{"matched":false,"applied":{"count":1,"method":"POST","path":"/rest/v1/rpc/get_exercise_catalog_changes"}},"restoredActual":false,"restored":{"matched":true},"durationMs":27}]},{"id":"run-browser-3#case-37-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-37-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/quality/cleanup/resources","valueSha256":"2a9f928d0bccb0a2f6ad5bd34ece2376cdfa7eb16a8cbb97b764986a1d572e63","matched":true,"value":[{"id":"control-case038-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":168}]},{"id":"run-browser-3#case-37-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-37-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-37-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-37-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-37-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-37-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-37-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-37-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-37-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/startedAt","valueSha256":"5460913d00ed687eef33b9019d15970d687cb0d49fe23ac4a3a45e4693f376ab","matched":true,"value":"2026-09-09T20:04:04.300Z"},{"id":"run-browser-3#case-37-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/finishedAt","valueSha256":"5b12d865b0142c48efcbccf6d0fa7088b61974bb7559d3e050e7360cd56659f2","matched":true,"value":"2026-09-09T20:04:17.136Z"},{"id":"run-browser-3#case-37-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-37-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-37-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-37-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/pages/0/pageClosed","valueSha256":"5a198e974bc0ecf8a9d227f54119bb7041c278450be4784fd81228258f0a0224","matched":true,"value":{"sequence":167,"pendingRequestIds":[]}},{"id":"run-browser-3#case-37-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/pages/0/routeCleanup","valueSha256":"4665a5c13893f09565f83a443cc00bbc32620b718ac0fc79ea4c0df87a8e90d4","matched":true,"value":[{"startedSequence":165,"status":"completed","completedSequence":166}]},{"id":"run-browser-3#case-37-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/pages/0/observerDisposal","valueSha256":"409afe28f53d5752995d60667a15365ab30c5da43e7998b2ec2f416f270bf984","matched":true,"value":{"status":"completed","closeSequence":167,"startedSequence":168,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":169}},{"id":"run-browser-3#case-37-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-37-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/8/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/9/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-40-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/9/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-40-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-40-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-041","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/9/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"998d48968dc99cd384ae19028fb84b30bf0092b569ddc665fe8dc6f10edb4bab","matched":true,"value":17127},{"id":"run-browser-3#case-40-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/quality/checkpoints","valueSha256":"a521c59f14ef5d56ada7c416b47bf173daa155bc82ba4ccf4a2508448cc1a3a8","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":35},{"id":"checkpoint-2","passed":true,"assertions":65},{"id":"checkpoint-3","passed":true,"assertions":19}]},{"id":"run-browser-3#case-40-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/id","valueSha256":"4e30befb2264df773e4ec9552e392399c8cfd5f801e3296eec0948f4b3372cc5","matched":true,"value":"create-ack-lost"},{"id":"run-browser-3#case-40-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-40-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-3#case-40-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-3#case-40-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-3#case-40-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-40-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-40-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-fault-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/id","valueSha256":"dfc87bc453d1be075b5f57b9596df7a9cdf74908a0e20a4cf91016d19d94f7ed","matched":true,"value":"edit-ack-lost"},{"id":"run-browser-3#case-40-fault-1-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-40-fault-1-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-3#case-40-fault-1-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-3#case-40-fault-1-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/requestCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-3#case-40-fault-1-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/requiredAttempts","valueSha256":"06d033ece6645de592db973644cf7357255f24536ff7b03c3b2ace10736f7636","matched":true,"value":[3]},{"id":"run-browser-3#case-40-fault-1-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/observedAttempts","valueSha256":"06d033ece6645de592db973644cf7357255f24536ff7b03c3b2ace10736f7636","matched":true,"value":[3]},{"id":"run-browser-3#case-40-fault-1-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-fault-1-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/1/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-fault-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/id","valueSha256":"81e9eed10f13d0fbc74b09e3380a30b271ad122a37ae51d5f58ea1bbbee4f60b","matched":true,"value":"delete-ack-lost"},{"id":"run-browser-3#case-40-fault-2-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-40-fault-2-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/path","valueSha256":"49ff52b9508f42fd1c8b1ce812948fcc03db46bd1aa9bed0ca0beccd418a0274","matched":true,"value":"/rest/v1/rpc/delete_session_v5"},{"id":"run-browser-3#case-40-fault-2-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-3#case-40-fault-2-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-3#case-40-fault-2-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-40-fault-2-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-40-fault-2-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-fault-2-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/expectedFaultEvidence/faults/2/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/expectedCount","valueSha256":"e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683","matched":true,"value":6},{"id":"run-browser-3#case-40-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/observedCount","valueSha256":"e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683","matched":true,"value":6},{"id":"run-browser-3#case-40-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/0/id","valueSha256":"a626ad78dccc6f185ec1c1e02b15c1958368fa4e048c3e6376874ee9fffee6ad","matched":true,"value":"connectivity-entered-1"},{"id":"run-browser-3#case-40-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-3#case-40-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/1/id","valueSha256":"185a54df1f364e5c3ebabcdfd2ab5b0c103701f34d44f4bd793200b5cb44a736","matched":true,"value":"connectivity-exited-1"},{"id":"run-browser-3#case-40-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-3#case-40-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/2/id","valueSha256":"07ca2e13573a55237d54becc4340bd8397feab7c458cc698914878521d92c80b","matched":true,"value":"connectivity-entered-2"},{"id":"run-browser-3#case-40-required-event-2-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/2/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-3#case-40-required-event-2-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/2/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-2-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/2/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-3-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/3/id","valueSha256":"df2c110122ce64cf69cd1b3828d2fc563dd76586e892e55f3a0ece71bc5c0c0e","matched":true,"value":"connectivity-exited-2"},{"id":"run-browser-3#case-40-required-event-3-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/3/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-3#case-40-required-event-3-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/3/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-3-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/3/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-4-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/4/id","valueSha256":"3a78a8f962b8d42f72b4081573d2233be1845d2861547520f53ae43142af239b","matched":true,"value":"connectivity-entered-3"},{"id":"run-browser-3#case-40-required-event-4-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/4/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-3#case-40-required-event-4-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/4/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-4-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/4/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-5-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/5/id","valueSha256":"5e710fec9c825f75a27bcf6ff61f9d7a93bfca8d7052f252322ac0080c50b485","matched":true,"value":"connectivity-exited-3"},{"id":"run-browser-3#case-40-required-event-5-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/5/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-3#case-40-required-event-5-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/5/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-required-event-5-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion/requiredObservationEvidence/records/5/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-041","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/quality/checkpoints","valueSha256":"a521c59f14ef5d56ada7c416b47bf173daa155bc82ba4ccf4a2508448cc1a3a8","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":35},{"id":"checkpoint-2","passed":true,"assertions":65},{"id":"checkpoint-3","passed":true,"assertions":19}]},{"id":"run-browser-3#case-40-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/completion","valueSha256":"2116a06125eded9ec2ab19b71c3f086803aab863f71ae46429034f90e8603d2c","matched":true,"value":{"caseId":"CASE-041","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":3,"authenticated-api-rpc":1,"postgresql-readback":3,"frontend-state":2,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"create-ack-lost","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":4,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]},{"id":"edit-ack-lost","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":null,"attemptWindow":{"first":3,"last":3},"requestCount":4,"requiredAttempts":[3],"observedAttempts":[3],"missingAttempts":[],"violations":[]},{"id":"delete-ack-lost","origin":"supabase","method":"POST","path":"/rest/v1/rpc/delete_session_v5","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"create-ack-lost","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:57921/rest/v1/rpc/save_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"edit-ack-lost","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":3,"url":"http://127.0.0.1:57921/rest/v1/rpc/save_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"delete-ack-lost","origin":"supabase","method":"POST","path":"/rest/v1/rpc/delete_session_v5","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:57921/rest/v1/rpc/delete_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-connectivity-lifecycle","owner":"case-context-user","expectedCount":6,"observedCount":6,"records":[{"sequence":1,"id":"connectivity-entered-1","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"bc546719-d343-4814-a06f-773545c37e02","operationId":"tab:83812c88-0d02-4caa-908e-3714df36902b:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-exited-1","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"37a795dd-9a6d-49b5-adc2-f8966350fe1c","operationId":"tab:83812c88-0d02-4caa-908e-3714df36902b:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true},{"sequence":3,"id":"connectivity-entered-2","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"cc41dfd4-3bdf-401c-9499-b1ddc07a1843","operationId":"tab:83812c88-0d02-4caa-908e-3714df36902b:event:2","receiptStored":true,"storedRowVerified":true},{"sequence":4,"id":"connectivity-exited-2","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"eeae5e42-407f-48b7-a909-8d5488da3bb5","operationId":"tab:83812c88-0d02-4caa-908e-3714df36902b:1:6:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true},{"sequence":5,"id":"connectivity-entered-3","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"b7e8c4a1-35ed-484c-849d-d4a9b377e797","operationId":"tab:e2024076-bd1e-48b0-992e-4592a95f455c:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":6,"id":"connectivity-exited-3","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"2cbda547-1d91-4b1e-9fa8-ac18a273bdfe","operationId":"tab:e2024076-bd1e-48b0-992e-4592a95f455c:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-3#case-40-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/quality/controls","valueSha256":"ec92d7c70761e5fa8ddae87b1d56f86ca70403bc92f90514c87c90c740211b26","matched":true,"value":[{"id":"case041-purpose-control","description":"동일 mutation 재전송이 최초 commit 영수증 revision을 다시 바꾸는 이중 적용 결함","boundary":"http-response","status":"passed","expected":[{"user_id":"ff03a85b-e7d1-474f-9767-08708dfe2bc2","client_mutation_id":"bb2b6114-a677-48fc-84f0-12871a9d6f6f","session_id":"947bd78c-0c7a-4b25-beec-e6ffc4db0cd0","client_request_hash":"36efb301cea5a32417532ce53839668618db792f68f6839fd42d27790b9222a2","server_revision":1,"stats_requested_version":1}],"comparator":{"kind":"deepEqual"},"normalActual":[{"user_id":"ff03a85b-e7d1-474f-9767-08708dfe2bc2","client_mutation_id":"bb2b6114-a677-48fc-84f0-12871a9d6f6f","session_id":"947bd78c-0c7a-4b25-beec-e6ffc4db0cd0","client_request_hash":"36efb301cea5a32417532ce53839668618db792f68f6839fd42d27790b9222a2","server_revision":1,"stats_requested_version":1}],"normal":{"matched":true},"negativeActual":[{"user_id":"ff03a85b-e7d1-474f-9767-08708dfe2bc2","client_mutation_id":"bb2b6114-a677-48fc-84f0-12871a9d6f6f","session_id":"947bd78c-0c7a-4b25-beec-e6ffc4db0cd0","client_request_hash":"36efb301cea5a32417532ce53839668618db792f68f6839fd42d27790b9222a2","server_revision":2,"stats_requested_version":1}],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/workout_mutation_receipts"}},"restoredActual":[{"user_id":"ff03a85b-e7d1-474f-9767-08708dfe2bc2","client_mutation_id":"bb2b6114-a677-48fc-84f0-12871a9d6f6f","session_id":"947bd78c-0c7a-4b25-beec-e6ffc4db0cd0","client_request_hash":"36efb301cea5a32417532ce53839668618db792f68f6839fd42d27790b9222a2","server_revision":1,"stats_requested_version":1}],"restored":{"matched":true},"durationMs":24}]},{"id":"run-browser-3#case-40-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-40-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/quality/cleanup/resources","valueSha256":"a950d6864f15bd45af8a98731da2d2f1bae57cc602a3b4115bed4f6df24bf7cc","matched":true,"value":[{"id":"control-case041-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":67}]},{"id":"run-browser-3#case-40-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/ownedPageListeners","valueSha256":"13eada476888f985622811f0391fe01980835e19ad937b6925a1dd0af15e3b2c","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-40-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-40-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-40-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-40-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-40-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-40-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-40-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-40-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/startedAt","valueSha256":"26ba99e37e30cd4834fd8e73730b03a8c34b7469e0668db685cf86c266fbf1b1","matched":true,"value":"2026-09-09T20:04:17.406Z"},{"id":"run-browser-3#case-40-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/finishedAt","valueSha256":"52d733c2a9cc796fd39463c0843c8f94be557d5feb8215c2276294f07ec57c50","matched":true,"value":"2026-09-09T20:04:34.446Z"},{"id":"run-browser-3#case-40-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-40-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-40-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-40-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/pages/0/pageClosed","valueSha256":"b00fbf64737f24965ca82d5f0540993863ac2f87af2bcc75551253ff69dc15f8","matched":true,"value":{"sequence":344,"pendingRequestIds":[]}},{"id":"run-browser-3#case-40-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/pages/0/routeCleanup","valueSha256":"7308a8cb0b4a85b53e6f4a77367c8b8c35c733755876d05648576540da9187a8","matched":true,"value":[{"startedSequence":342,"status":"completed","completedSequence":343}]},{"id":"run-browser-3#case-40-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/pages/0/observerDisposal","valueSha256":"6a49193c02dddaae3c30e4ae5d1643881aa65db30a9be0d7a08455ab975617c7","matched":true,"value":{"status":"completed","closeSequence":344,"startedSequence":345,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":346}},{"id":"run-browser-3#case-40-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-40-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/9/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-042","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/10/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-41-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-042","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/10/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-41-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-042","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-41-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-042","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/10/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"ac92418ce76958c8e5a2db66912e634865bdcc710727e821864b04ba21bd07ec","matched":true,"value":15201},{"id":"run-browser-3#case-41-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-042","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/checkpoints","valueSha256":"8bf9cc8706fb68819c7b11a5cc9e0742ee12a00e9673d1a9fac2c9bf0a780168","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":18},{"id":"checkpoint-2","passed":true,"assertions":25},{"id":"checkpoint-3","passed":true,"assertions":17}]},{"id":"run-browser-3#case-41-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-042","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-042","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-042","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-042","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-042","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/checkpoints","valueSha256":"8bf9cc8706fb68819c7b11a5cc9e0742ee12a00e9673d1a9fac2c9bf0a780168","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":18},{"id":"checkpoint-2","passed":true,"assertions":25},{"id":"checkpoint-3","passed":true,"assertions":17}]},{"id":"run-browser-3#case-41-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-042","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/completion","valueSha256":"264ae0396123ece2adff73cd06a201f04cca693d83b12a34d3e927da6a4a8e19","matched":true,"value":{"caseId":"CASE-042","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"postgresql-readback":2,"reload-reentry":1,"authenticated-api-rpc":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-3#case-41-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-042","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls","valueSha256":"cfe70a5f9093cac40ae1f4b778e857e3d9b27d4654615f1882f944340e3565f1","matched":true,"value":[{"id":"case042-purpose-control","description":"페이지 사망 뒤 복원된 pending 요청의 원래 입력이 변하는 결함","boundary":"indexeddb","status":"passed","expected":[{"clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","userId":"8aacd652-4146-4c4f-b98b-c3d736d314b2","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-042 mtuj1otq-0cad36","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"76f12a6c-6d8f-46be-ade4-8f2e9a90665d","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"b511ecdf-6049-4afc-91bf-e3c799f68a39","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"8aacd652-4146-4c4f-b98b-c3d736d314b2"},"sourceRef":"local:local-workout:67b56c1f-9efd-4599-a56f-629b4b089739","clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","requestHash":"6625014e1594d545c67f9ea8a8137d8970c268fbca6425b8d24f25fcfb7c7175"}}],"comparator":{"kind":"deepEqual"},"normalActual":[{"clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","userId":"8aacd652-4146-4c4f-b98b-c3d736d314b2","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-042 mtuj1otq-0cad36","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"76f12a6c-6d8f-46be-ade4-8f2e9a90665d","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"b511ecdf-6049-4afc-91bf-e3c799f68a39","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"8aacd652-4146-4c4f-b98b-c3d736d314b2"},"sourceRef":"local:local-workout:67b56c1f-9efd-4599-a56f-629b4b089739","clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","requestHash":"6625014e1594d545c67f9ea8a8137d8970c268fbca6425b8d24f25fcfb7c7175"}}],"normal":{"matched":true},"negativeActual":[{"clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","userId":"8aacd652-4146-4c4f-b98b-c3d736d314b2","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-042 mtuj1otq-0cad36 control-corruption","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"76f12a6c-6d8f-46be-ade4-8f2e9a90665d","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"b511ecdf-6049-4afc-91bf-e3c799f68a39","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"8aacd652-4146-4c4f-b98b-c3d736d314b2"},"sourceRef":"local:local-workout:67b56c1f-9efd-4599-a56f-629b4b089739","clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","requestHash":"6625014e1594d545c67f9ea8a8137d8970c268fbca6425b8d24f25fcfb7c7175"}}],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":[{"clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","userId":"8aacd652-4146-4c4f-b98b-c3d736d314b2","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-042 mtuj1otq-0cad36","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"76f12a6c-6d8f-46be-ade4-8f2e9a90665d","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"b511ecdf-6049-4afc-91bf-e3c799f68a39","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"8aacd652-4146-4c4f-b98b-c3d736d314b2"},"sourceRef":"local:local-workout:67b56c1f-9efd-4599-a56f-629b4b089739","clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","requestHash":"6625014e1594d545c67f9ea8a8137d8970c268fbca6425b8d24f25fcfb7c7175"}}],"restored":{"matched":true},"durationMs":20}]},{"id":"run-browser-3#case-41-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-042","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls/0/normalActual","valueSha256":"b55278456e529a314b3dcc029b30d52883989f17590e8219d7e9224fd09bc93a","matched":true,"value":[{"clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","userId":"8aacd652-4146-4c4f-b98b-c3d736d314b2","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-042 mtuj1otq-0cad36","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"76f12a6c-6d8f-46be-ade4-8f2e9a90665d","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"b511ecdf-6049-4afc-91bf-e3c799f68a39","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"8aacd652-4146-4c4f-b98b-c3d736d314b2"},"sourceRef":"local:local-workout:67b56c1f-9efd-4599-a56f-629b4b089739","clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","requestHash":"6625014e1594d545c67f9ea8a8137d8970c268fbca6425b8d24f25fcfb7c7175"}}]},{"id":"run-browser-3#case-41-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-042","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls/0/negativeActual","valueSha256":"87bf847a81bb1c5cc78b668180cf91013035645ddc956a7ec94e5ea6c59b436a","matched":true,"value":[{"clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","userId":"8aacd652-4146-4c4f-b98b-c3d736d314b2","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-042 mtuj1otq-0cad36 control-corruption","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"76f12a6c-6d8f-46be-ade4-8f2e9a90665d","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"b511ecdf-6049-4afc-91bf-e3c799f68a39","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"8aacd652-4146-4c4f-b98b-c3d736d314b2"},"sourceRef":"local:local-workout:67b56c1f-9efd-4599-a56f-629b4b089739","clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","requestHash":"6625014e1594d545c67f9ea8a8137d8970c268fbca6425b8d24f25fcfb7c7175"}}]},{"id":"run-browser-3#case-41-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-042","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls/0/restoredActual","valueSha256":"b55278456e529a314b3dcc029b30d52883989f17590e8219d7e9224fd09bc93a","matched":true,"value":[{"clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","userId":"8aacd652-4146-4c4f-b98b-c3d736d314b2","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-042 mtuj1otq-0cad36","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"76f12a6c-6d8f-46be-ade4-8f2e9a90665d","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"b511ecdf-6049-4afc-91bf-e3c799f68a39","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"8aacd652-4146-4c4f-b98b-c3d736d314b2"},"sourceRef":"local:local-workout:67b56c1f-9efd-4599-a56f-629b4b089739","clientMutationId":"67b56c1f-9efd-4599-a56f-629b4b089739","requestHash":"6625014e1594d545c67f9ea8a8137d8970c268fbca6425b8d24f25fcfb7c7175"}}]},{"id":"run-browser-3#case-41-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-042","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-41-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-042","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-41-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-042","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-41-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-042","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-41-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-41-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/quality/cleanup/resources","valueSha256":"68a801807eb99ba12ee50481d12fe44b36bc93ffefe230af04650991334fc6d9","matched":true,"value":[{"id":"original-sending-ttl","status":"passed","settled":true,"durationMs":0},{"id":"control-case042-purpose-control","status":"passed","settled":true,"durationMs":4},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":69}]},{"id":"run-browser-3#case-41-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-41-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-41-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-41-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-41-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-41-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-41-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-41-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-41-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/startedAt","valueSha256":"1968e732efe359fd3802b78955443eab6611988921fa68be86243938cc116c80","matched":true,"value":"2026-09-09T20:04:34.670Z"},{"id":"run-browser-3#case-41-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/finishedAt","valueSha256":"9327a8782476802720ccb0e00f7484e3cedb8e7935e3fa267595922b5a244597","matched":true,"value":"2026-09-09T20:04:49.798Z"},{"id":"run-browser-3#case-41-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-41-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-41-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-042","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-41-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/0/pageClosed","valueSha256":"de5ab8607c939f9d3d1f6785a618cdd0617975bebe293e7193d1c99c123fcba8","matched":true,"value":{"sequence":65,"pendingRequestIds":["21"]}},{"id":"run-browser-3#case-41-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/0/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/0/observerDisposal","valueSha256":"ac3ca3c6736cdeeb52892dc38b9a67f9c0925fd82176a6f9443a20c29500c1ba","matched":true,"value":{"status":"completed","closeSequence":65,"startedSequence":66,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":67}},{"id":"run-browser-3#case-41-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/0/currentPending","valueSha256":"7b50cf81bac9fc36591022488cfd565755196a76ed7fcfb1a9ffd00264aed02c","matched":true,"value":["21"]},{"id":"run-browser-3#case-41-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/1/pageClosed","valueSha256":"60a65930ef81378164e1c55e3f9f9fc3648fe84745f650be64e5de70257eff97","matched":true,"value":{"sequence":114,"pendingRequestIds":[]}},{"id":"run-browser-3#case-41-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/1/routeCleanup","valueSha256":"7d84a2ad35f76d4fae35cc1111e603524963b51004576ef2e97a95e03d75c3f0","matched":true,"value":[{"startedSequence":112,"status":"completed","completedSequence":113}]},{"id":"run-browser-3#case-41-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/1/observerDisposal","valueSha256":"f3e667bd20b547df6e32bd4b7b3a0fb1610fce3082616eeabcf48e1cadce1354","matched":true,"value":{"status":"completed","closeSequence":114,"startedSequence":115,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":116}},{"id":"run-browser-3#case-41-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-41-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-042","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/10/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-043","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/11/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-42-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-043","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/11/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-42-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-043","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-42-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-043","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/11/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"3d1a10b227a0d6422374cbdc8cc9db3cf299167b9743f1b19a00738c77bab81a","matched":true,"value":6885},{"id":"run-browser-3#case-42-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-043","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/checkpoints","valueSha256":"5b286605fc1a0cd0141dc18cfcf97b50034216dfd533733f185da1922faaebe8","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":19},{"id":"checkpoint-2","passed":true,"assertions":26},{"id":"checkpoint-3","passed":true,"assertions":18}]},{"id":"run-browser-3#case-42-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-043","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-043","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-043","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-043","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/id","valueSha256":"5a3297a8389a806a4264cec434d277d4b933b361149ad8c77e223c6f396409c6","matched":true,"value":"expired-jwt-write"},{"id":"run-browser-3#case-42-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-42-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-3#case-42-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/status","valueSha256":"dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85","matched":true,"value":401},{"id":"run-browser-3#case-42-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-3#case-42-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-42-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-42-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-043","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/checkpoints","valueSha256":"5b286605fc1a0cd0141dc18cfcf97b50034216dfd533733f185da1922faaebe8","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":19},{"id":"checkpoint-2","passed":true,"assertions":26},{"id":"checkpoint-3","passed":true,"assertions":18}]},{"id":"run-browser-3#case-42-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-043","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/completion","valueSha256":"18a77c5839e5af186581fe698e9b2f416889afc01ade41c5b42ea8fa0709defa","matched":true,"value":{"caseId":"CASE-043","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"postgresql-readback":2,"reload-reentry":1,"authenticated-api-rpc":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"expired-jwt-write","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":401,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 401 (Unauthorized)","id":"expired-jwt-write","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":401,"failureText":"","attempt":1,"url":"http://127.0.0.1:57921/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]}}},{"id":"run-browser-3#case-42-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-043","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls","valueSha256":"22defb7d6aa0ed68f92bd9eaa5af3d9f9a0adca0f311578d1afaaba6ccbbe0c4","matched":true,"value":[{"id":"case043-purpose-control","description":"같은 사용자 재인증 뒤 held 요청의 원래 입력이 유실되는 결함","boundary":"indexeddb","status":"passed","expected":[{"clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","userId":"f490e624-a6bd-4ac4-b015-e520acbbeaf9","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-043 mtuj20ny-a4383f","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"4d3d8277-668d-4f10-84ed-2c3cbc56d3e7","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"732d039d-918d-48b0-8589-04d2441a83a3","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"f490e624-a6bd-4ac4-b015-e520acbbeaf9"},"sourceRef":"local:local-workout:e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","requestHash":"ae8cb9dc7148705a941e37a8b7c09310dcbe8e513f2b7a01d691ad850085c19e"}}],"comparator":{"kind":"deepEqual"},"normalActual":[{"clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","userId":"f490e624-a6bd-4ac4-b015-e520acbbeaf9","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-043 mtuj20ny-a4383f","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"4d3d8277-668d-4f10-84ed-2c3cbc56d3e7","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"732d039d-918d-48b0-8589-04d2441a83a3","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"f490e624-a6bd-4ac4-b015-e520acbbeaf9"},"sourceRef":"local:local-workout:e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","requestHash":"ae8cb9dc7148705a941e37a8b7c09310dcbe8e513f2b7a01d691ad850085c19e"}}],"normal":{"matched":true},"negativeActual":[{"clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","userId":"f490e624-a6bd-4ac4-b015-e520acbbeaf9","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-043 mtuj20ny-a4383f control-corruption","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"4d3d8277-668d-4f10-84ed-2c3cbc56d3e7","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"732d039d-918d-48b0-8589-04d2441a83a3","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"f490e624-a6bd-4ac4-b015-e520acbbeaf9"},"sourceRef":"local:local-workout:e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","requestHash":"ae8cb9dc7148705a941e37a8b7c09310dcbe8e513f2b7a01d691ad850085c19e"}}],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":[{"clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","userId":"f490e624-a6bd-4ac4-b015-e520acbbeaf9","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-043 mtuj20ny-a4383f","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"4d3d8277-668d-4f10-84ed-2c3cbc56d3e7","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"732d039d-918d-48b0-8589-04d2441a83a3","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"f490e624-a6bd-4ac4-b015-e520acbbeaf9"},"sourceRef":"local:local-workout:e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","requestHash":"ae8cb9dc7148705a941e37a8b7c09310dcbe8e513f2b7a01d691ad850085c19e"}}],"restored":{"matched":true},"durationMs":21}]},{"id":"run-browser-3#case-42-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-043","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls/0/normalActual","valueSha256":"4dfb130642b7fb1fa0b3b060b76609bae05e9898ad2e158a34f2f6051d7affa7","matched":true,"value":[{"clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","userId":"f490e624-a6bd-4ac4-b015-e520acbbeaf9","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-043 mtuj20ny-a4383f","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"4d3d8277-668d-4f10-84ed-2c3cbc56d3e7","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"732d039d-918d-48b0-8589-04d2441a83a3","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"f490e624-a6bd-4ac4-b015-e520acbbeaf9"},"sourceRef":"local:local-workout:e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","requestHash":"ae8cb9dc7148705a941e37a8b7c09310dcbe8e513f2b7a01d691ad850085c19e"}}]},{"id":"run-browser-3#case-42-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-043","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls/0/negativeActual","valueSha256":"0255a3e5c56af500b0a5ca07e58877deefce739dfc1f71553d687a6a380b188d","matched":true,"value":[{"clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","userId":"f490e624-a6bd-4ac4-b015-e520acbbeaf9","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-043 mtuj20ny-a4383f control-corruption","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"4d3d8277-668d-4f10-84ed-2c3cbc56d3e7","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"732d039d-918d-48b0-8589-04d2441a83a3","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"f490e624-a6bd-4ac4-b015-e520acbbeaf9"},"sourceRef":"local:local-workout:e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","requestHash":"ae8cb9dc7148705a941e37a8b7c09310dcbe8e513f2b7a01d691ad850085c19e"}}]},{"id":"run-browser-3#case-42-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-043","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls/0/restoredActual","valueSha256":"4dfb130642b7fb1fa0b3b060b76609bae05e9898ad2e158a34f2f6051d7affa7","matched":true,"value":[{"clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","userId":"f490e624-a6bd-4ac4-b015-e520acbbeaf9","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-043 mtuj20ny-a4383f","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:04","endTime":"05:04","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"4d3d8277-668d-4f10-84ed-2c3cbc56d3e7","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"732d039d-918d-48b0-8589-04d2441a83a3","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"f490e624-a6bd-4ac4-b015-e520acbbeaf9"},"sourceRef":"local:local-workout:e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","clientMutationId":"e4b4f5aa-af3f-43fa-b6e4-cfad475c7cde","requestHash":"ae8cb9dc7148705a941e37a8b7c09310dcbe8e513f2b7a01d691ad850085c19e"}}]},{"id":"run-browser-3#case-42-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-043","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-42-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-043","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-42-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-043","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-42-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-043","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-42-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-42-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/quality/cleanup/resources","valueSha256":"b181cd4369b50198a288efa4f1aa629b29490efb0e970ad5f56c85cc66a9e0bc","matched":true,"value":[{"id":"control-case043-purpose-control","status":"passed","settled":true,"durationMs":5},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":156},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":66}]},{"id":"run-browser-3#case-42-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-42-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-42-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-42-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-42-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-42-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-42-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-42-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-42-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/startedAt","valueSha256":"babf6837ad3a42d3b11b4a7784b628c131bffe3cb9d65036840676b623aaa20f","matched":true,"value":"2026-09-09T20:04:50.014Z"},{"id":"run-browser-3#case-42-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/finishedAt","valueSha256":"28b6e1b1ed11656f6e276b85c963fa87e27f1acc4c4cd6db3bc8bac213a20835","matched":true,"value":"2026-09-09T20:04:56.812Z"},{"id":"run-browser-3#case-42-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-42-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-42-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-043","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-42-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/0/pageClosed","valueSha256":"82e1a75726912c95f0dcecc91de1b25e25be3ddb8edfe7468acbf9687f7473f4","matched":true,"value":{"sequence":72,"pendingRequestIds":[]}},{"id":"run-browser-3#case-42-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/0/routeCleanup","valueSha256":"4524f25dafc627451855084395a4981670c37eb2f8c9eb6ed7420bca75096324","matched":true,"value":[{"startedSequence":70,"status":"completed","completedSequence":71}]},{"id":"run-browser-3#case-42-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/0/observerDisposal","valueSha256":"3ffb9ad0f61ff6e838e9945932bcfbe966d6c428f74749d0ce4b6814ce2566b0","matched":true,"value":{"status":"completed","closeSequence":72,"startedSequence":73,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":74}},{"id":"run-browser-3#case-42-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/1/pageClosed","valueSha256":"d8c2e458bd73cb6a16e085c3559dd8d63d93114f5d6dddb5bf1f1b9b801dd7ca","matched":true,"value":{"sequence":105,"pendingRequestIds":[]}},{"id":"run-browser-3#case-42-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/1/routeCleanup","valueSha256":"135648d488fe016f340c10938613bb3d095a52830ec97bd9a24f71456206050d","matched":true,"value":[{"startedSequence":103,"status":"completed","completedSequence":104}]},{"id":"run-browser-3#case-42-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/1/observerDisposal","valueSha256":"26a9eb2bc09538ff64aaedb5ae09e7e53bf6990a804586550a4e6bb0135751b7","matched":true,"value":{"status":"completed","closeSequence":105,"startedSequence":106,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":107}},{"id":"run-browser-3#case-42-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-42-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-043","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/11/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/12/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-43-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/12/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-43-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-43-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-044","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/12/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"02d26c9a4bd468f5f552278ed5c35d9cc0aa9791311d8f22bc33111671029c33","matched":true,"value":11366},{"id":"run-browser-3#case-43-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/quality/checkpoints","valueSha256":"195bfe0898567e936bbd5c22adbd75e885363e87c2a87e52c836d35470dce735","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":18},{"id":"checkpoint-2","passed":true,"assertions":38},{"id":"checkpoint-3","passed":true,"assertions":29},{"id":"checkpoint-4","passed":true,"assertions":28}]},{"id":"run-browser-3#case-43-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/id","valueSha256":"ab2bbe86ce3372b2283f8fb07fdcb188baef09c355f7ebb35bbffaf1b30587fe","matched":true,"value":"owner-a-expired-jwt"},{"id":"run-browser-3#case-43-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-43-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-3#case-43-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/status","valueSha256":"dcaadad1cfce437735b81ab025f776e5857e48558c47f6960e6a5f2595664a85","matched":true,"value":401},{"id":"run-browser-3#case-43-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-3#case-43-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-43-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-43-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-044","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/quality/checkpoints","valueSha256":"195bfe0898567e936bbd5c22adbd75e885363e87c2a87e52c836d35470dce735","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":18},{"id":"checkpoint-2","passed":true,"assertions":38},{"id":"checkpoint-3","passed":true,"assertions":29},{"id":"checkpoint-4","passed":true,"assertions":28}]},{"id":"run-browser-3#case-43-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/completion","valueSha256":"ccf5009cd98ff20ff616380b187a92272cdd7be9bfa4a6ed0b8aaa18713458ee","matched":true,"value":{"caseId":"CASE-044","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":2,"frontend-state":2,"postgresql-readback":3,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"owner-a-expired-jwt","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":401,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":3,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 401 (Unauthorized)","id":"owner-a-expired-jwt","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":401,"failureText":"","attempt":1,"url":"http://127.0.0.1:57921/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]}}},{"id":"run-browser-3#case-43-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/quality/controls","valueSha256":"a60380fa9c06ebd6bd0ded1ead2bf06b027a2b8bc6a593979a1fe40ce841da89","matched":true,"value":[{"id":"case044-purpose-control","description":"A 기록이 B의 인증 조회에 나타나는 계정 격리 결함","boundary":"http-response","status":"passed","expected":[],"comparator":{"kind":"deepEqual"},"normalActual":[],"normal":{"matched":true},"negativeActual":[{"id":"a3f58358-668d-47a1-bc6d-74795b5a9792","user_id":"2ea25a72-6629-4087-b57d-b249c4c1410d","title":"CASE-044 A mtuj262t-6ab2ce","date":"2026-09-10","source_ref":"local:local-workout:8f05f233-d540-4d02-913f-a0a2a385a681","server_revision":1,"status":"completed"}],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/session"}},"restoredActual":[],"restored":{"matched":true},"durationMs":16}]},{"id":"run-browser-3#case-43-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-43-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/quality/cleanup/resources","valueSha256":"58532f359a75a9d016edbb6707a384afeb922afcaa052726e292bc6e032dd2e4","matched":true,"value":[{"id":"control-case044-purpose-control","status":"passed","settled":true,"durationMs":1},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":3},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-3","status":"passed","settled":true,"durationMs":62}]},{"id":"run-browser-3#case-43-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/ownedPageListeners","valueSha256":"fbd4456289b587022388cd94c69af8b8ea03c499e704df8acdfa9657262ebeab","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-43-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-43-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-43-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-43-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-43-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-43-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-43-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-43-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/startedAt","valueSha256":"f0f224acb6e233c7823d8963f7b7d1e9c91ef5780dd6f23c3eca4e648ce3cdec","matched":true,"value":"2026-09-09T20:04:57.029Z"},{"id":"run-browser-3#case-43-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/finishedAt","valueSha256":"5251615f5e427d2cdd85189f6b4e8632148210f2e79475bf79c61f484b65dfb9","matched":true,"value":"2026-09-09T20:05:08.323Z"},{"id":"run-browser-3#case-43-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-43-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-43-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-43-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/0/pageClosed","valueSha256":"7c8881837d9bc62f30feca8766b0385404bf4881db7f5dd60f7c4b80d4e56bf7","matched":true,"value":{"sequence":70,"pendingRequestIds":[]}},{"id":"run-browser-3#case-43-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/0/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/0/observerDisposal","valueSha256":"0e0aa0a42330cd2255a4376580cacbe9f9bcf567991183e742d18e47924f3c9b","matched":true,"value":{"status":"completed","closeSequence":70,"startedSequence":71,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":72}},{"id":"run-browser-3#case-43-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/1/pageClosed","valueSha256":"ceca90eefd03dd46e8bd09637ed5549a71657122da2f28c9318119058c2c2962","matched":true,"value":{"sequence":109,"pendingRequestIds":[]}},{"id":"run-browser-3#case-43-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/1/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/1/observerDisposal","valueSha256":"2c4e689558a0b6c59af50c64573bf2ddc19fb2471cf47c7851e265dc8c640f4c","matched":true,"value":{"status":"completed","closeSequence":109,"startedSequence":110,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":111}},{"id":"run-browser-3#case-43-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-43-page-2-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/2/pageClosed","valueSha256":"c29e1d71b33aed102b20a8182a902a274baf8c7836936cafcfae852775e3406c","matched":true,"value":{"sequence":100,"pendingRequestIds":["32"]}},{"id":"run-browser-3#case-43-page-2-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/2/routeCleanup","valueSha256":"afac7b70e06315882412398c40973130e039cd1f570fff7dc4a4c839d38964f8","matched":true,"value":[{"startedSequence":97,"status":"completed","completedSequence":98}]},{"id":"run-browser-3#case-43-page-2-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/2/observerDisposal","valueSha256":"690e2728d9d5cc5e8b1f9142a11de9185152a7d6450f43307aed47a5f707f7d6","matched":true,"value":{"status":"completed","closeSequence":100,"startedSequence":101,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":102}},{"id":"run-browser-3#case-43-page-2-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/2/currentPending","valueSha256":"462964112f8b27ab0ca0f6c858d12951ea41cd58d50bde935f976aec121a4db6","matched":true,"value":["32"]},{"id":"run-browser-3#case-43-page-2-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/12/diagnostic/pages/2/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-045","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-44-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-045","explanation":"실제 native retry=0.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-44-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-045","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-44-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-045","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-3/error-cases.json","artifactSha256":"9fe79f19ddc99a5329366d3e0a6109ade844de06d914e638ec1adaca304f312b","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"7e17e6fea04574f346ce95371da334956f742c8c458359c3951685edcfab7a2c","matched":true,"value":14472},{"id":"run-browser-3#case-44-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-045","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/checkpoints","valueSha256":"a254b1fecb766c20b8b56618598b1dcd65544dd4c45da711181bc998098e0f84","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":14},{"id":"checkpoint-2","passed":true,"assertions":66},{"id":"checkpoint-3","passed":true,"assertions":63},{"id":"checkpoint-4","passed":true,"assertions":23}]},{"id":"run-browser-3#case-44-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-045","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-045","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-045","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-045","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/id","valueSha256":"bee42c95fa402e5c1e43010a7d1043bf17c7cedf37d1fd186d8a8ab453921ff2","matched":true,"value":"real-stale-revision"},{"id":"run-browser-3#case-44-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-44-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-3#case-44-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-3#case-44-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-3#case-44-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"038966de9f6b9a901b20b4c6ca8b2a46009feebe031babc842d43690c0bc222b","matched":true,"value":[2]},{"id":"run-browser-3#case-44-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"038966de9f6b9a901b20b4c6ca8b2a46009feebe031babc842d43690c0bc222b","matched":true,"value":[2]},{"id":"run-browser-3#case-44-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-fault-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/id","valueSha256":"23cf451ee721f6f7bb6e92e2f01241b96ffe5bac9aa06e1603dc273ad61ba2ae","matched":true,"value":"real-stale-delete-revision"},{"id":"run-browser-3#case-44-fault-1-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-44-fault-1-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/path","valueSha256":"49ff52b9508f42fd1c8b1ce812948fcc03db46bd1aa9bed0ca0beccd418a0274","matched":true,"value":"/rest/v1/rpc/delete_session_v5"},{"id":"run-browser-3#case-44-fault-1-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-3#case-44-fault-1-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-3#case-44-fault-1-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-44-fault-1-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-3#case-44-fault-1-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-fault-1-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/1/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-fault-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/id","valueSha256":"aa27c36431f804d1529f1e4250e81d06d883146a5304900f3e33db121816807b","matched":true,"value":"deleted-record-detail"},{"id":"run-browser-3#case-44-fault-2-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-3#case-44-fault-2-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/path","valueSha256":"9558c67725de600e77734fe4ecb2dfd92a00e0f532ccd49d21ac9312c329dc0b","matched":true,"value":"/rest/v1/rpc/get_session_detail"},{"id":"run-browser-3#case-44-fault-2-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/status","valueSha256":"0604cd3138feed202ef293e062da2f4720f77a05d25ee036a7a01c9cfcdd1f0a","matched":true,"value":500},{"id":"run-browser-3#case-44-fault-2-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/requestCount","valueSha256":"7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451","matched":true,"value":7},{"id":"run-browser-3#case-44-fault-2-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/requiredAttempts","valueSha256":"589ffd3acf522ae81192579f297589e93b0c41f748b224d1b4bb5c857a2f70cb","matched":true,"value":[7]},{"id":"run-browser-3#case-44-fault-2-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/observedAttempts","valueSha256":"589ffd3acf522ae81192579f297589e93b0c41f748b224d1b4bb5c857a2f70cb","matched":true,"value":[7]},{"id":"run-browser-3#case-44-fault-2-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-fault-2-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/expectedFaultEvidence/faults/2/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-44-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-44-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/records/0/id","valueSha256":"aa27c36431f804d1529f1e4250e81d06d883146a5304900f3e33db121816807b","matched":true,"value":"deleted-record-detail"},{"id":"run-browser-3#case-44-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"4cb6a2c1c4eff3a91cc29d01fe4ba051c39f68cc166cfb95233d2ac217d06c4b","matched":true,"value":"get_session_detail"},{"id":"run-browser-3#case-44-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-44-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-44-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-045","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/checkpoints","valueSha256":"a254b1fecb766c20b8b56618598b1dcd65544dd4c45da711181bc998098e0f84","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":14},{"id":"checkpoint-2","passed":true,"assertions":66},{"id":"checkpoint-3","passed":true,"assertions":63},{"id":"checkpoint-4","passed":true,"assertions":23}]},{"id":"run-browser-3#case-44-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-045","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/completion","valueSha256":"cef304fdfc2ca7cf302c5767551864d65995639019236a49c2941047eb6f2cd8","matched":true,"value":{"caseId":"CASE-045","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":3,"frontend-state":2,"postgresql-readback":3,"authenticated-api-rpc":2,"reload-reentry":2,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"real-stale-revision","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":null,"attemptWindow":{"first":2,"last":2},"requestCount":4,"requiredAttempts":[2],"observedAttempts":[2],"missingAttempts":[],"violations":[]},{"id":"real-stale-delete-revision","origin":"supabase","method":"POST","path":"/rest/v1/rpc/delete_session_v5","status":400,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]},{"id":"deleted-record-detail","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_session_detail","status":500,"failureText":null,"attemptWindow":{"first":7,"last":7},"requestCount":7,"requiredAttempts":[7],"observedAttempts":[7],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"real-stale-revision","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":"","attempt":2,"url":"http://127.0.0.1:57921/rest/v1/rpc/save_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"real-stale-delete-revision","origin":"supabase","method":"POST","path":"/rest/v1/rpc/delete_session_v5","status":400,"failureText":"","attempt":1,"url":"http://127.0.0.1:57921/rest/v1/rpc/delete_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 500 (Internal Server Error)","id":"deleted-record-detail","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_session_detail","status":500,"failureText":"","attempt":7,"url":"http://127.0.0.1:57921/rest/v1/rpc/get_session_detail"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"deleted-record-detail","repetition":1,"operationName":"get_session_detail","diagnosticKey":"screen_rpc_failed","clientEventId":"620d9b0d-5540-4f06-986e-24a633a4ae6d","operationId":"rpc:get_session_detail:45bb293e-61e9-4a01-8b7b-246343e2fd38","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-3#case-44-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-045","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls","valueSha256":"70b2b7d0dafd1748db504e4d189299d3364e2770d946eb8253cc7daca3c8b3f8","matched":true,"value":[{"id":"case045-purpose-control","description":"실제 revision 충돌 복구 후 최신 80kg 대신 이전 탭의 70kg을 저장하는 경합 결함","boundary":"http-response","status":"passed","expected":{"revision":3,"sets":[[80,5]]},"comparator":{"kind":"deepEqual"},"normalActual":{"revision":3,"sets":[[80,5]]},"normal":{"matched":true},"negativeActual":{"revision":3,"sets":[[70,5]]},"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":{"revision":3,"sets":[[80,5]]},"restored":{"matched":true},"durationMs":46}]},{"id":"run-browser-3#case-44-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-045","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls/0/normalActual","valueSha256":"431b065f06775cf9e56e13b9810e980c09d38bfc8563d14dedc36cf93fc6e559","matched":true,"value":{"revision":3,"sets":[[80,5]]}},{"id":"run-browser-3#case-44-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-045","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls/0/negativeActual","valueSha256":"d33a58582b1d5003ab091685c8ad84c66ba7ce00869f3533e929b51e37dcef9e","matched":true,"value":{"revision":3,"sets":[[70,5]]}},{"id":"run-browser-3#case-44-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-045","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls/0/restoredActual","valueSha256":"431b065f06775cf9e56e13b9810e980c09d38bfc8563d14dedc36cf93fc6e559","matched":true,"value":{"revision":3,"sets":[[80,5]]}},{"id":"run-browser-3#case-44-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-045","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-44-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-045","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-3#case-44-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-045","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-44-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-045","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-44-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-3#case-44-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/quality/cleanup/resources","valueSha256":"f7ed04252fb48aff66ab4d28c2335f1bf92a5fde1e8e81a13306a92083ca51c6","matched":true,"value":[{"id":"control-case045-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":56},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":6}]},{"id":"run-browser-3#case-44-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-3#case-44-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-3#case-44-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-3#case-44-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-3#case-44-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-3#case-44-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-3#case-44-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-3#case-44-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-3#case-44-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/startedAt","valueSha256":"a4380b65e876de6519f1f9aea9bfc82e1e85b54d3e76fa7a4e7dbd743d48984d","matched":true,"value":"2026-09-09T20:05:08.599Z"},{"id":"run-browser-3#case-44-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/finishedAt","valueSha256":"d54d5e61b10a0647f1ff41df1b9d05dbe2010c2b499719bf0ff3b54b63121741","matched":true,"value":"2026-09-09T20:05:23.001Z"},{"id":"run-browser-3#case-44-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-3#case-44-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-3#case-44-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-045","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-3#case-44-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/0/pageClosed","valueSha256":"ff38e0f7496e9d651573f1010697d187865bbe2f9bdeed5aeb466fa724a84e41","matched":true,"value":{"sequence":301,"pendingRequestIds":[]}},{"id":"run-browser-3#case-44-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/0/routeCleanup","valueSha256":"c2a9d1191f1f9305908f144cd76decfd2a1747f558cd839da14378ae904b32cc","matched":true,"value":[{"startedSequence":299,"status":"completed","completedSequence":300}]},{"id":"run-browser-3#case-44-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/0/observerDisposal","valueSha256":"035c9b3d161235f704f9bab02a314081d7b1eed03a973d9682559fb79ed40354","matched":true,"value":{"status":"completed","closeSequence":301,"startedSequence":302,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":303}},{"id":"run-browser-3#case-44-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/1/pageClosed","valueSha256":"fd2e67639a40efdb24e292b2c65c1cd056edcc08c72c232d1aaa4d0e69f6ab37","matched":true,"value":{"sequence":250,"pendingRequestIds":[]}},{"id":"run-browser-3#case-44-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/1/routeCleanup","valueSha256":"c2c2688ed94b01920ab860636a357d6ba4eb39b120c528201fa34646630554f1","matched":true,"value":[{"startedSequence":248,"status":"completed","completedSequence":249}]},{"id":"run-browser-3#case-44-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/1/observerDisposal","valueSha256":"411869cc97919a1aeae527e30cef1a46d7e0e78a92aca10e881572f1597bd48e","matched":true,"value":{"status":"completed","closeSequence":250,"startedSequence":251,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":252}},{"id":"run-browser-3#case-44-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-3#case-44-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-045","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-3/browser-3-of-4.e2e-evidence.json","artifactSha256":"95482d86dbcbce97e405613282a0339492aea79cb68e37c2fce8232c641ac8ad","pointer":"/results/13/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-039","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-38-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-039","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-38-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-039","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-38-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-039","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"309f7e731870650ac03d4abe83a87601573863c174d0739d0fb131443a8b49ab","matched":true,"value":19773},{"id":"run-browser-4#case-38-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-039","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/checkpoints","valueSha256":"c4811eeb8c0e974007b3f97f81369f60ddccfcd4b01aca0cb3e5cdeb1e030c21","matched":true,"value":[{"id":"legacy-online-baseline","passed":true,"assertions":21},{"id":"legacy-edit-queued","passed":true,"assertions":25},{"id":"new-tab-reads-legacy-row","passed":true,"assertions":16},{"id":"legacy-touches-row-again","passed":true,"assertions":13},{"id":"single-server-apply","passed":true,"assertions":17},{"id":"journey-completion","passed":true,"assertions":22}]},{"id":"run-browser-4#case-38-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-039","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-039","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-039","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-039","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/id","valueSha256":"d0f7f4b1b153119bbb1ffd81968e46ff7fc6f83f41456d60f56e610d26decc65","matched":true,"value":"completed-session-update-503-legacy-twice"},{"id":"run-browser-4#case-38-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-38-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-4#case-38-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-4#case-38-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-4#case-38-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-4#case-38-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-4#case-38-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/expectedCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-4#case-38-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/observedCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-4#case-38-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/0/id","valueSha256":"cc9eec541ac6d0ce7281c5f4be6b54d8e97c48ebee210b1f77c100553fa99183","matched":true,"value":"connectivity-entered-first-outage"},{"id":"run-browser-4#case-38-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-4#case-38-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/1/id","valueSha256":"fdd5d28d2bb86e6f6e6553afd5c1520165fbf103982cdfb475769ce55b104e49","matched":true,"value":"connectivity-exited-first-recovery"},{"id":"run-browser-4#case-38-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-4#case-38-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-required-event-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/2/id","valueSha256":"4b138da7e7fa5752792e3c260af890be32bad886259de292bff2c006701a9167","matched":true,"value":"connectivity-entered-second-outage"},{"id":"run-browser-4#case-38-required-event-2-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/2/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-4#case-38-required-event-2-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/2/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-required-event-2-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/2/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-required-event-3-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/3/id","valueSha256":"71daba69d841c2fa67709fefc26f280085914ec6479dd43201e0c00f6efe1155","matched":true,"value":"connectivity-exited-final-recovery"},{"id":"run-browser-4#case-38-required-event-3-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/3/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-4#case-38-required-event-3-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/3/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-required-event-3-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion/requiredObservationEvidence/records/3/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-039","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/checkpoints","valueSha256":"c4811eeb8c0e974007b3f97f81369f60ddccfcd4b01aca0cb3e5cdeb1e030c21","matched":true,"value":[{"id":"legacy-online-baseline","passed":true,"assertions":21},{"id":"legacy-edit-queued","passed":true,"assertions":25},{"id":"new-tab-reads-legacy-row","passed":true,"assertions":16},{"id":"legacy-touches-row-again","passed":true,"assertions":13},{"id":"single-server-apply","passed":true,"assertions":17},{"id":"journey-completion","passed":true,"assertions":22}]},{"id":"run-browser-4#case-38-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/rpcObservers","valueSha256":"66486bcce8843debb60af9bcef5cdc093a3ee58c0101123e8eafab66c4000d17","matched":true,"value":[{"operation":"get_calendar_day_summary","generation":2,"completed":1,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":1,"method":"POST","settled":true,"failed":false},{"id":5,"generation":2,"method":"POST","settled":true,"failed":false}]},{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":1,"completed":3,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":0,"method":"POST","settled":true,"failed":false},{"id":5,"generation":1,"method":"POST","settled":true,"failed":false},{"id":6,"generation":1,"method":"POST","settled":true,"failed":false},{"id":7,"generation":1,"method":"POST","settled":true,"failed":false}]},{"operation":"get_calendar_day_summary","generation":0,"completed":1,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-4#case-38-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-039","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/completion","valueSha256":"a3f8b6a059d713c22e55ab8044a8c3461b1bc5377c3421e1ca75f663e72f78e9","matched":true,"value":{"caseId":"CASE-039","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":3,"authenticated-api-rpc":3,"postgresql-readback":3,"frontend-state":4,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"completed-session-update-503-legacy-twice","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":null,"attemptWindow":{"first":1,"last":2},"requestCount":3,"requiredAttempts":[1,2],"observedAttempts":[1,2],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"completed-session-update-503-legacy-twice","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/save_session_v5"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"completed-session-update-503-legacy-twice","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":503,"failureText":"","attempt":2,"url":"http://127.0.0.1:56421/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-connectivity-lifecycle","owner":"case-context-user","expectedCount":4,"observedCount":4,"records":[{"sequence":1,"id":"connectivity-entered-first-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"cf286573-195a-41b8-bf59-a86e8c9fc288","operationId":"tab:598555fc-d076-4898-82e1-892b7e9adfd0:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-exited-first-recovery","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"b4b1d488-0a96-43a7-be49-33cbe5c1c877","operationId":"tab:598555fc-d076-4898-82e1-892b7e9adfd0:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true},{"sequence":3,"id":"connectivity-entered-second-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:api-outage","clientEventId":"d7f10faa-0483-45c1-8819-9cb7df5f708c","operationId":"tab:598555fc-d076-4898-82e1-892b7e9adfd0:event:2","receiptStored":true,"storedRowVerified":true},{"sequence":4,"id":"connectivity-exited-final-recovery","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:api-outage","clientEventId":"4a4080c5-77d2-47ca-b313-0e4a8f8e5512","operationId":"tab:598555fc-d076-4898-82e1-892b7e9adfd0:1:6:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-38-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-039","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls","valueSha256":"07f023d650582a38db8a49fd85201a8f199d65b9000430e3994618accf1eefe0","matched":true,"value":[{"id":"case039-purpose-control","description":"새 탭이 옛 pending 행의 알 수 없는 claim 메타를 덮어쓰는 호환성 결함","boundary":"indexeddb","status":"passed","expected":{"tabId":"case-039-new-writer","expiresAt":"2099-01-01T00:00:00.000Z","fence":7},"comparator":{"kind":"deepEqual"},"normalActual":{"tabId":"case-039-new-writer","expiresAt":"2099-01-01T00:00:00.000Z","fence":7},"normal":{"matched":true},"negativeActual":{"tabId":"case-039-new-writer","expiresAt":"2099-01-01T00:00:00.000Z","fence":8},"negative":{"matched":false,"applied":{"count":1}},"restoredActual":{"tabId":"case-039-new-writer","expiresAt":"2099-01-01T00:00:00.000Z","fence":7},"restored":{"matched":true},"durationMs":46}]},{"id":"run-browser-4#case-38-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-039","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls/0/normalActual","valueSha256":"13a9c78640de00e18c7b26237a2141d4917f3aa2e05af5f8ca73fc33d8c0b837","matched":true,"value":{"tabId":"case-039-new-writer","expiresAt":"2099-01-01T00:00:00.000Z","fence":7}},{"id":"run-browser-4#case-38-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-039","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls/0/negativeActual","valueSha256":"4d25d7527d03acf9a75c0813fa8795c79080874a7f7f306a397a013c4b211c00","matched":true,"value":{"tabId":"case-039-new-writer","expiresAt":"2099-01-01T00:00:00.000Z","fence":8}},{"id":"run-browser-4#case-38-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-039","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls/0/restoredActual","valueSha256":"13a9c78640de00e18c7b26237a2141d4917f3aa2e05af5f8ca73fc33d8c0b837","matched":true,"value":{"tabId":"case-039-new-writer","expiresAt":"2099-01-01T00:00:00.000Z","fence":7}},{"id":"run-browser-4#case-38-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-039","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-039","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-38-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-039","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-38-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-039","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-38-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/quality/cleanup/resources","valueSha256":"df9a4e852c44b6b5d64583b272ca1bd5ddc5e1b1500644a16e524ca9f2bc9bf5","matched":true,"value":[{"id":"case039-rehydration-gates","status":"passed","settled":true,"durationMs":2},{"id":"case039-secondary-tab","status":"passed","settled":true,"durationMs":0},{"id":"control-case039-purpose-control","status":"passed","settled":true,"durationMs":15},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":95},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":0},{"id":"rpc-observer-2","status":"passed","settled":true,"durationMs":1},{"id":"rpc-observer-3","status":"passed","settled":true,"durationMs":1},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":4}]},{"id":"run-browser-4#case-38-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/ownedPageListeners","valueSha256":"9398bc9791e6de4b45f8ea4b6004faba557bf0cd0975b26deffbf0552253818f","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-38-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-38-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-38-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-38-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-38-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-38-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-38-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-38-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/startedAt","valueSha256":"2fbf679575ea0352d7d212633efde0dc2b7db91fa0caf4b1a0a3c5c419e06462","matched":true,"value":"2026-09-09T20:03:02.931Z"},{"id":"run-browser-4#case-38-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/finishedAt","valueSha256":"5e1a26db743f6caeb893ff14ecc66a1b33614466fb3d906ffc3f66a2b5bb3caf","matched":true,"value":"2026-09-09T20:03:22.570Z"},{"id":"run-browser-4#case-38-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-38-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-38-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-039","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-38-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/0/pageClosed","valueSha256":"b96191f15620016050d3518c4681c8dcbe2828f2f0c1afea2f213b3e9e0fbea8","matched":true,"value":{"sequence":272,"pendingRequestIds":[]}},{"id":"run-browser-4#case-38-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/0/routeCleanup","valueSha256":"87c6c888fbfd04f50765f557e3dd2376cbe36711f082022669e9d815acc87907","matched":true,"value":[{"startedSequence":270,"status":"completed","completedSequence":271}]},{"id":"run-browser-4#case-38-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/0/observerDisposal","valueSha256":"0e8b13b12331d93156eed38495a79c66d98af68ff7857d8d6b5eff5bf13b3e0d","matched":true,"value":{"status":"completed","closeSequence":272,"startedSequence":273,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":274}},{"id":"run-browser-4#case-38-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/1/pageClosed","valueSha256":"e497fdc690e8e3f84124fc2c6bd0f16fbfa7c6b16e7528ac964bbd218208067d","matched":true,"value":{"sequence":61,"pendingRequestIds":[]}},{"id":"run-browser-4#case-38-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/1/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/1/observerDisposal","valueSha256":"026808f20d57fe8cda957c3b142e31aea9b287f05dd8558ef3341f325fe9351f","matched":true,"value":{"status":"completed","closeSequence":61,"startedSequence":62,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":63}},{"id":"run-browser-4#case-38-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-38-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-039","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/0/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-040","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-39-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-040","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-39-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-040","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-39-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-040","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"2a2a89378b213580f5f91c9098e151b4e04a0dde81e6269182a247032082796e","matched":true,"value":17329},{"id":"run-browser-4#case-39-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-040","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/checkpoints","valueSha256":"559f5646575a07e8354dbd9b96c2bed8ddc9b5027f5c7940e49252e2dc033007","matched":true,"value":[{"id":"new-tab-bootstrap-outage-then-legacy-online-baseline","passed":true,"assertions":43},{"id":"legacy-edit-in-flight","passed":true,"assertions":25},{"id":"new-tab-successor-kept","passed":true,"assertions":12},{"id":"legacy-receipt-keeps-successor","passed":true,"assertions":8},{"id":"successor-applied-after-predecessor","passed":true,"assertions":34},{"id":"journey-completion","passed":true,"assertions":22}]},{"id":"run-browser-4#case-39-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-040","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-040","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-040","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-040","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/id","valueSha256":"02d50214a4cb684c752742a5d33aa66241c9129508939440873c2c77b8825451","matched":true,"value":"new-tab-bootstrap-503-twice"},{"id":"run-browser-4#case-39-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-39-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/path","valueSha256":"ffd8cb179d0e6b2aed56af6db6503d0ae553ab53969e67d9e0c8a180ad41f736","matched":true,"value":"/rest/v1/rpc/get_profile_workspace"},{"id":"run-browser-4#case-39-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-4#case-39-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"2c624232cdd221771294dfbb310aca000a0df6ac8b66b696d90ef06fdefb64a3","matched":true,"value":8},{"id":"run-browser-4#case-39-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-4#case-39-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"49a64717d5d4cb19952e6eac2946415cf6879adacf9908e7d872332d32c6e684","matched":true,"value":[1,2]},{"id":"run-browser-4#case-39-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-fault-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/id","valueSha256":"dd86a69efba6d572edecd5ee00c06e5e79f92a07f8717a997068eca1c02dbf40","matched":true,"value":"successor-stale-revision-conflict"},{"id":"run-browser-4#case-39-fault-1-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-39-fault-1-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-4#case-39-fault-1-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-4#case-39-fault-1-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/requestCount","valueSha256":"4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","matched":true,"value":4},{"id":"run-browser-4#case-39-fault-1-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/requiredAttempts","valueSha256":"06d033ece6645de592db973644cf7357255f24536ff7b03c3b2ace10736f7636","matched":true,"value":[3]},{"id":"run-browser-4#case-39-fault-1-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/observedAttempts","valueSha256":"06d033ece6645de592db973644cf7357255f24536ff7b03c3b2ace10736f7636","matched":true,"value":[3]},{"id":"run-browser-4#case-39-fault-1-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-fault-1-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/expectedFaultEvidence/faults/1/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/expectedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-39-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/observedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-39-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/0/id","valueSha256":"a3f51c8776036f9a2c55fd268e5ab81b0ba0f5cf9c14cb50774a1ccb4b7c2524","matched":true,"value":"connectivity-entered-new-tab-bootstrap-outage"},{"id":"run-browser-4#case-39-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-4#case-39-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-39-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-39-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/1/id","valueSha256":"b35c409752fdf3163cccbf93338dc98e624e680dfaba133ca3b05f7116da6ee3","matched":true,"value":"connectivity-exited-new-tab-bootstrap-recovery"},{"id":"run-browser-4#case-39-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-4#case-39-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-39-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-39-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-040","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/checkpoints","valueSha256":"559f5646575a07e8354dbd9b96c2bed8ddc9b5027f5c7940e49252e2dc033007","matched":true,"value":[{"id":"new-tab-bootstrap-outage-then-legacy-online-baseline","passed":true,"assertions":43},{"id":"legacy-edit-in-flight","passed":true,"assertions":25},{"id":"new-tab-successor-kept","passed":true,"assertions":12},{"id":"legacy-receipt-keeps-successor","passed":true,"assertions":8},{"id":"successor-applied-after-predecessor","passed":true,"assertions":34},{"id":"journey-completion","passed":true,"assertions":22}]},{"id":"run-browser-4#case-39-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/rpcObservers","valueSha256":"4808e685a4ffdc969376f7f4a45276877a1a4ef27e47de4cac101d6395de8d72","matched":true,"value":[{"operation":"get_calendar_day_summary","generation":1,"completed":1,"closed":false,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":0,"method":"POST","settled":true,"failed":false},{"id":5,"generation":1,"method":"POST","settled":true,"failed":false}]},{"operation":"process_user_exercise_stats_refresh_jobs_for_user","generation":0,"completed":9,"closed":false,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":0,"method":"POST","settled":true,"failed":false},{"id":4,"generation":0,"method":"POST","settled":true,"failed":false},{"id":5,"generation":0,"method":"POST","settled":true,"failed":false},{"id":6,"generation":0,"method":"POST","settled":true,"failed":false},{"id":7,"generation":0,"method":"POST","settled":true,"failed":false},{"id":8,"generation":0,"method":"POST","settled":true,"failed":false},{"id":9,"generation":0,"method":"POST","settled":true,"failed":false}]},{"operation":"get_calendar_day_summary","generation":1,"completed":2,"closed":true,"disposed":true,"pending":0,"requests":[{"id":1,"generation":0,"method":"POST","settled":true,"failed":false},{"id":2,"generation":0,"method":"POST","settled":true,"failed":false},{"id":3,"generation":1,"method":"POST","settled":true,"failed":false},{"id":4,"generation":1,"method":"POST","settled":true,"failed":false}]}]},{"id":"run-browser-4#case-39-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-040","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/completion","valueSha256":"07d7c0785a9ad1c5fcd799c5faed2f9f88790d8ce8231ca07d0aabfa0830ebc6","matched":true,"value":{"caseId":"CASE-040","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":5,"authenticated-api-rpc":3,"postgresql-readback":4,"frontend-state":3,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"new-tab-bootstrap-503-twice","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":null,"attemptWindow":{"first":1,"last":2},"requestCount":8,"requiredAttempts":[1,2],"observedAttempts":[1,2],"missingAttempts":[],"violations":[]},{"id":"successor-stale-revision-conflict","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":null,"attemptWindow":{"first":3,"last":3},"requestCount":4,"requiredAttempts":[3],"observedAttempts":[3],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"new-tab-bootstrap-503-twice","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/get_profile_workspace"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"new-tab-bootstrap-503-twice","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","status":503,"failureText":"","attempt":2,"url":"http://127.0.0.1:56421/rest/v1/rpc/get_profile_workspace"},{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"successor-stale-revision-conflict","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":"","attempt":3,"url":"http://127.0.0.1:56421/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-connectivity-lifecycle","owner":"case-context-user","expectedCount":2,"observedCount":2,"records":[{"sequence":1,"id":"connectivity-entered-new-tab-bootstrap-outage","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:auth-outage","clientEventId":"e050d5cb-7e40-4fc5-b6cd-60ece8d802b1","operationId":"tab:da76ed96-ff3f-46de-b736-5612696ceac3:event:1","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"connectivity-exited-new-tab-bootstrap-recovery","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:auth-outage","clientEventId":"4fbc1c8f-e0e5-4afe-ad58-74018dd2ae4e","operationId":"tab:da76ed96-ff3f-46de-b736-5612696ceac3:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-39-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-040","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls","valueSha256":"03b6a86cdce1740af3bb87df73dba6a6951cdf573b9aba08c153a4649192a9d9","matched":true,"value":[{"id":"case040-purpose-control","description":"옛 탭 ACK가 새 successor 행까지 삭제하는 결함","boundary":"indexeddb","status":"passed","expected":[{"clientMutationId":"e798c376-47b3-5ea1-ad99-cf1f63a4ef6f","requestHash":"e798c37647b3cea1ed99cf1f63a4ef6fbf5e7dac8d29bfe56f65e61b05ccdb23","sourceRef":"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38","expectedRevision":1,"userId":"2b48b7ce-7d61-4ef5-9f19-6677c893ca93","kind":"update_completed_session","targetId":"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200","body":"{\"user\":{\"id\":\"2b48b7ce-7d61-4ef5-9f19-6677c893ca93\"},\"sessionId\":\"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200\",\"session\":{\"date\":\"2026-09-10\",\"title\":\"CASE-040 mtuj0b5g-41d8c0\",\"condition\":\"\",\"note\":\"\",\"preNote\":\"\",\"postCondition\":\"\",\"startTime\":\"05:03\",\"endTime\":\"05:03\",\"duration\":\"0분\",\"bodyWeight\":75,\"sessionIntent\":\"training\",\"exercises\":[{\"id\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"existingSessionExerciseId\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"exerciseId\":\"eece5e29-a057-5804-873d-2c7b862a987e\",\"name\":\"백스쿼트\",\"kind\":\"exercise\",\"title\":\"\",\"bwFactor\":0,\"fields\":[\"load\",\"reps\"],\"details\":[],\"note\":\"\",\"review\":\"\",\"sets\":[{\"id\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"existingExerciseSetId\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"type\":\"main\",\"load\":90,\"loadLb\":null,\"reps\":5,\"targetReps\":5,\"setResult\":\"completed\",\"perceivedRpe\":null,\"done\":true,\"restSeconds\":0,\"freeRest\":true,\"note\":\"\",\"userLoadOverrideUnit\":\"kg\"}]}]},\"sourceRef\":\"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38\",\"e"}],"comparator":{"kind":"deepEqual"},"normalActual":[{"clientMutationId":"e798c376-47b3-5ea1-ad99-cf1f63a4ef6f","requestHash":"e798c37647b3cea1ed99cf1f63a4ef6fbf5e7dac8d29bfe56f65e61b05ccdb23","sourceRef":"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38","expectedRevision":1,"userId":"2b48b7ce-7d61-4ef5-9f19-6677c893ca93","kind":"update_completed_session","targetId":"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200","body":"{\"user\":{\"id\":\"2b48b7ce-7d61-4ef5-9f19-6677c893ca93\"},\"sessionId\":\"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200\",\"session\":{\"date\":\"2026-09-10\",\"title\":\"CASE-040 mtuj0b5g-41d8c0\",\"condition\":\"\",\"note\":\"\",\"preNote\":\"\",\"postCondition\":\"\",\"startTime\":\"05:03\",\"endTime\":\"05:03\",\"duration\":\"0분\",\"bodyWeight\":75,\"sessionIntent\":\"training\",\"exercises\":[{\"id\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"existingSessionExerciseId\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"exerciseId\":\"eece5e29-a057-5804-873d-2c7b862a987e\",\"name\":\"백스쿼트\",\"kind\":\"exercise\",\"title\":\"\",\"bwFactor\":0,\"fields\":[\"load\",\"reps\"],\"details\":[],\"note\":\"\",\"review\":\"\",\"sets\":[{\"id\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"existingExerciseSetId\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"type\":\"main\",\"load\":90,\"loadLb\":null,\"reps\":5,\"targetReps\":5,\"setResult\":\"completed\",\"perceivedRpe\":null,\"done\":true,\"restSeconds\":0,\"freeRest\":true,\"note\":\"\",\"userLoadOverrideUnit\":\"kg\"}]}]},\"sourceRef\":\"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38\",\"e"}],"normal":{"matched":true},"negativeActual":[],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":[{"clientMutationId":"e798c376-47b3-5ea1-ad99-cf1f63a4ef6f","requestHash":"e798c37647b3cea1ed99cf1f63a4ef6fbf5e7dac8d29bfe56f65e61b05ccdb23","sourceRef":"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38","expectedRevision":1,"userId":"2b48b7ce-7d61-4ef5-9f19-6677c893ca93","kind":"update_completed_session","targetId":"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200","body":"{\"user\":{\"id\":\"2b48b7ce-7d61-4ef5-9f19-6677c893ca93\"},\"sessionId\":\"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200\",\"session\":{\"date\":\"2026-09-10\",\"title\":\"CASE-040 mtuj0b5g-41d8c0\",\"condition\":\"\",\"note\":\"\",\"preNote\":\"\",\"postCondition\":\"\",\"startTime\":\"05:03\",\"endTime\":\"05:03\",\"duration\":\"0분\",\"bodyWeight\":75,\"sessionIntent\":\"training\",\"exercises\":[{\"id\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"existingSessionExerciseId\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"exerciseId\":\"eece5e29-a057-5804-873d-2c7b862a987e\",\"name\":\"백스쿼트\",\"kind\":\"exercise\",\"title\":\"\",\"bwFactor\":0,\"fields\":[\"load\",\"reps\"],\"details\":[],\"note\":\"\",\"review\":\"\",\"sets\":[{\"id\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"existingExerciseSetId\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"type\":\"main\",\"load\":90,\"loadLb\":null,\"reps\":5,\"targetReps\":5,\"setResult\":\"completed\",\"perceivedRpe\":null,\"done\":true,\"restSeconds\":0,\"freeRest\":true,\"note\":\"\",\"userLoadOverrideUnit\":\"kg\"}]}]},\"sourceRef\":\"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38\",\"e"}],"restored":{"matched":true},"durationMs":31}]},{"id":"run-browser-4#case-39-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-040","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls/0/normalActual","valueSha256":"8137d02738da323b9093cea1415786525db5fa304f70009a7ddf64f597afbeeb","matched":true,"value":[{"clientMutationId":"e798c376-47b3-5ea1-ad99-cf1f63a4ef6f","requestHash":"e798c37647b3cea1ed99cf1f63a4ef6fbf5e7dac8d29bfe56f65e61b05ccdb23","sourceRef":"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38","expectedRevision":1,"userId":"2b48b7ce-7d61-4ef5-9f19-6677c893ca93","kind":"update_completed_session","targetId":"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200","body":"{\"user\":{\"id\":\"2b48b7ce-7d61-4ef5-9f19-6677c893ca93\"},\"sessionId\":\"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200\",\"session\":{\"date\":\"2026-09-10\",\"title\":\"CASE-040 mtuj0b5g-41d8c0\",\"condition\":\"\",\"note\":\"\",\"preNote\":\"\",\"postCondition\":\"\",\"startTime\":\"05:03\",\"endTime\":\"05:03\",\"duration\":\"0분\",\"bodyWeight\":75,\"sessionIntent\":\"training\",\"exercises\":[{\"id\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"existingSessionExerciseId\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"exerciseId\":\"eece5e29-a057-5804-873d-2c7b862a987e\",\"name\":\"백스쿼트\",\"kind\":\"exercise\",\"title\":\"\",\"bwFactor\":0,\"fields\":[\"load\",\"reps\"],\"details\":[],\"note\":\"\",\"review\":\"\",\"sets\":[{\"id\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"existingExerciseSetId\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"type\":\"main\",\"load\":90,\"loadLb\":null,\"reps\":5,\"targetReps\":5,\"setResult\":\"completed\",\"perceivedRpe\":null,\"done\":true,\"restSeconds\":0,\"freeRest\":true,\"note\":\"\",\"userLoadOverrideUnit\":\"kg\"}]}]},\"sourceRef\":\"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38\",\"e"}]},{"id":"run-browser-4#case-39-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-040","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls/0/negativeActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-040","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls/0/restoredActual","valueSha256":"8137d02738da323b9093cea1415786525db5fa304f70009a7ddf64f597afbeeb","matched":true,"value":[{"clientMutationId":"e798c376-47b3-5ea1-ad99-cf1f63a4ef6f","requestHash":"e798c37647b3cea1ed99cf1f63a4ef6fbf5e7dac8d29bfe56f65e61b05ccdb23","sourceRef":"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38","expectedRevision":1,"userId":"2b48b7ce-7d61-4ef5-9f19-6677c893ca93","kind":"update_completed_session","targetId":"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200","body":"{\"user\":{\"id\":\"2b48b7ce-7d61-4ef5-9f19-6677c893ca93\"},\"sessionId\":\"d2d90fa1-6f4a-4b46-bfb3-9f664ac6d200\",\"session\":{\"date\":\"2026-09-10\",\"title\":\"CASE-040 mtuj0b5g-41d8c0\",\"condition\":\"\",\"note\":\"\",\"preNote\":\"\",\"postCondition\":\"\",\"startTime\":\"05:03\",\"endTime\":\"05:03\",\"duration\":\"0분\",\"bodyWeight\":75,\"sessionIntent\":\"training\",\"exercises\":[{\"id\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"existingSessionExerciseId\":\"4a9ab5ad-3ba7-4800-9ad6-280cd49b1563\",\"exerciseId\":\"eece5e29-a057-5804-873d-2c7b862a987e\",\"name\":\"백스쿼트\",\"kind\":\"exercise\",\"title\":\"\",\"bwFactor\":0,\"fields\":[\"load\",\"reps\"],\"details\":[],\"note\":\"\",\"review\":\"\",\"sets\":[{\"id\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"existingExerciseSetId\":\"c9dcee70-d83e-49aa-941a-a9f400c69a10\",\"type\":\"main\",\"load\":90,\"loadLb\":null,\"reps\":5,\"targetReps\":5,\"setResult\":\"completed\",\"perceivedRpe\":null,\"done\":true,\"restSeconds\":0,\"freeRest\":true,\"note\":\"\",\"userLoadOverrideUnit\":\"kg\"}]}]},\"sourceRef\":\"local:local-workout:8f25bfe3-d857-41d9-9402-c860f8b8ff38\",\"e"}]},{"id":"run-browser-4#case-39-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-040","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-39-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-040","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-39-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-040","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-39-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-040","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-39-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-39-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/quality/cleanup/resources","valueSha256":"07620fefb4f8ac39b0ba3b17e13f5228cc0a5519f01a9fb72e0c7f649ce54d1f","matched":true,"value":[{"id":"case040-bootstrap-gate","status":"passed","settled":true,"durationMs":1},{"id":"case040-held-request","status":"passed","settled":true,"durationMs":0},{"id":"case040-secondary-tab","status":"passed","settled":true,"durationMs":0},{"id":"control-case040-purpose-control","status":"passed","settled":true,"durationMs":7},{"id":"rpc-observer-1","status":"passed","settled":true,"durationMs":0},{"id":"rpc-observer-2","status":"passed","settled":true,"durationMs":1},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":89},{"id":"rpc-observer-3","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":4}]},{"id":"run-browser-4#case-39-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-39-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-39-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-39-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-39-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-39-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-39-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-39-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-39-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/startedAt","valueSha256":"abd739a3bc9190e774a1fb52c44c4a1473a046784fdacfffea971a1271337929","matched":true,"value":"2026-09-09T20:03:30.292Z"},{"id":"run-browser-4#case-39-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/finishedAt","valueSha256":"8f122d82e5cde788c93e2fbcd1cdb48348bd3f67520aae5c732e3818edac305b","matched":true,"value":"2026-09-09T20:03:47.489Z"},{"id":"run-browser-4#case-39-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-39-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-39-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-040","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-39-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/0/pageClosed","valueSha256":"d883d013ca912828838f617db39f8c347498c6791b9b5ebe2d1242737a81580e","matched":true,"value":{"sequence":218,"pendingRequestIds":[]}},{"id":"run-browser-4#case-39-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/0/routeCleanup","valueSha256":"35c04bd2dcb7874f0023477acedea10b5874f5b5db608c11d84c926a3f84e38b","matched":true,"value":[{"startedSequence":216,"status":"completed","completedSequence":217}]},{"id":"run-browser-4#case-39-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/0/observerDisposal","valueSha256":"5e55d6acc933f8a978390cdc1819083651ed31eb1544ac2bf72a1089438edc99","matched":true,"value":{"status":"completed","closeSequence":218,"startedSequence":219,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":220}},{"id":"run-browser-4#case-39-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/1/pageClosed","valueSha256":"c38d9675284ca76a63699f848667bdf0f66949ce220b55537ec6d811e7368418","matched":true,"value":{"sequence":257,"pendingRequestIds":[]}},{"id":"run-browser-4#case-39-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/1/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/1/observerDisposal","valueSha256":"2c1db547b0910a178c4232b456371eb52ca9cdee80b9a944263f2ca59d027729","matched":true,"value":{"status":"completed","closeSequence":257,"startedSequence":258,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":259}},{"id":"run-browser-4#case-39-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-39-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-040","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/1/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-046","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-45-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-046","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-45-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-046","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-45-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-046","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"5edcf3b4d5f63d095b027a02182f2783e2bcdb36e2d8210617364fcce9da2df1","matched":true,"value":6956},{"id":"run-browser-4#case-45-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-046","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/checkpoints","valueSha256":"ff396a0947bf6f1ab3fd2039e635c2089a6e224ada7b9ceb7b1b9a7c070bef10","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":23},{"id":"checkpoint-2","passed":true,"assertions":26},{"id":"checkpoint-3","passed":true,"assertions":11}]},{"id":"run-browser-4#case-45-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-046","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-046","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-046","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-046","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/id","valueSha256":"75ea3fc7ca4c949e2ce3368135fa2ddcada4b6abafcda5ba19ceb9833e8fbd23","matched":true,"value":"permanent-contract-rejection"},{"id":"run-browser-4#case-45-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-45-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/path","valueSha256":"261bb394c743f540738722407afe1381d1698196d2f17904c35b1e17a644a28d","matched":true,"value":"/rest/v1/rpc/save_session_v5"},{"id":"run-browser-4#case-45-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-4#case-45-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-45-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-45-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-45-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-45-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-45-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/records/0/id","valueSha256":"8bcfad166af8b6690192368b8d0c3b115a876f663ee530bfbd16632e17922d5b","matched":true,"value":"permanent-write-rejection"},{"id":"run-browser-4#case-45-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"33c45d441f903c25d780ccc0d7be4e6124343047ca02959e6127d9f3b7de15ac","matched":true,"value":"isolate_pending_workout_save:blocked"},{"id":"run-browser-4#case-45-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-45-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-45-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-046","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/checkpoints","valueSha256":"ff396a0947bf6f1ab3fd2039e635c2089a6e224ada7b9ceb7b1b9a7c070bef10","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":23},{"id":"checkpoint-2","passed":true,"assertions":26},{"id":"checkpoint-3","passed":true,"assertions":11}]},{"id":"run-browser-4#case-45-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-046","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/completion","valueSha256":"4d848395c117bc773f19ed4190999c8aaac0234d6d8246cafa3b9bb82dadb79c","matched":true,"value":{"caseId":"CASE-046","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":2,"frontend-state":1,"postgresql-readback":2,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"permanent-contract-rejection","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"permanent-contract-rejection","origin":"supabase","method":"POST","path":"/rest/v1/rpc/save_session_v5","status":400,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/save_session_v5"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"permanent-write-rejection","repetition":1,"operationName":"isolate_pending_workout_save:blocked","diagnosticKey":"rpc_failure","clientEventId":"1abddf8d-bd05-4f17-99a1-833f879a14f8","operationId":"","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-45-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-046","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls","valueSha256":"0a94238b9bc774bdb5b71f2a75ddc3655aa48dcb01b7e30dda6c4a53911ed1bc","matched":true,"value":[{"id":"case046-purpose-control","description":"영구 거절로 격리된 기록의 제목이 유실되는 입력 보존 결함","boundary":"indexeddb","status":"passed","expected":"CASE-046 mtuj0t8p-419cc7","comparator":{"kind":"deepEqual"},"normalActual":"CASE-046 mtuj0t8p-419cc7","normal":{"matched":true},"negativeActual":"","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"CASE-046 mtuj0t8p-419cc7","restored":{"matched":true},"durationMs":50}]},{"id":"run-browser-4#case-45-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-046","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls/0/normalActual","valueSha256":"8d587ef18a6b7d0abd0e7a85947067bc8a3198550aee7207cc02c23e44c0b465","matched":true,"value":"CASE-046 mtuj0t8p-419cc7"},{"id":"run-browser-4#case-45-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-046","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls/0/negativeActual","valueSha256":"12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126","matched":true,"value":""},{"id":"run-browser-4#case-45-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-046","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls/0/restoredActual","valueSha256":"8d587ef18a6b7d0abd0e7a85947067bc8a3198550aee7207cc02c23e44c0b465","matched":true,"value":"CASE-046 mtuj0t8p-419cc7"},{"id":"run-browser-4#case-45-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-046","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-45-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-046","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-45-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-046","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-45-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-046","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-45-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-45-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/quality/cleanup/resources","valueSha256":"e618643bdb8c926d36cd5333992fbdee88841d94bc69b7d322cc06fdc7f3236a","matched":true,"value":[{"id":"control-case046-purpose-control","status":"passed","settled":true,"durationMs":9},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":81}]},{"id":"run-browser-4#case-45-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-45-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-45-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-45-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-45-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-45-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-45-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-45-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-45-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/startedAt","valueSha256":"a774387fa3ad3b8572b24c74ecf73ae5cce9384e6181e06134da5ab2ccbe0f81","matched":true,"value":"2026-09-09T20:03:53.737Z"},{"id":"run-browser-4#case-45-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/finishedAt","valueSha256":"9fed6c3b597a81ed56ea4357dedf10bee54760df0cf7ac3bdb1a6e5c78c53238","matched":true,"value":"2026-09-09T20:04:00.542Z"},{"id":"run-browser-4#case-45-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-45-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-45-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-046","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-45-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/pages/0/pageClosed","valueSha256":"39b21619a8df23b28d2922705c6ddb0393303ddb755c0becd8c9cd6cd5077c66","matched":true,"value":{"sequence":182,"pendingRequestIds":[]}},{"id":"run-browser-4#case-45-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/pages/0/routeCleanup","valueSha256":"11c95b185057b037e57f2849fbd2ed20c1b6f07fe1296311b52c8824818a0b4f","matched":true,"value":[{"startedSequence":180,"status":"completed","completedSequence":181}]},{"id":"run-browser-4#case-45-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/pages/0/observerDisposal","valueSha256":"7e2e6cc349a3e298a90a82ca7b8959e4060bc4e8bd4bb465446486e327b13c3a","matched":true,"value":{"status":"completed","closeSequence":182,"startedSequence":183,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":184}},{"id":"run-browser-4#case-45-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-45-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-046","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/2/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-047","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-46-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-047","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-46-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-047","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-46-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-047","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"bfd884b9971167d6ae6d5014b8412f85bd1dcbd6cb01a4ffe5b11f1eebc1b967","matched":true,"value":12471},{"id":"run-browser-4#case-46-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-047","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/checkpoints","valueSha256":"3f46bc3f28b6ffde9e0a97933ac98f16ac1134acaf68f877cb1736e411337fa3","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":15},{"id":"checkpoint-2","passed":true,"assertions":26},{"id":"checkpoint-3","passed":true,"assertions":18}]},{"id":"run-browser-4#case-46-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-047","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-047","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-047","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-047","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/id","valueSha256":"dbcd92b05f8fff988899c70586c098db6fb12c72e2c0ed8b5f2347f74ff2fe10","matched":true,"value":"detail-read-unavailable"},{"id":"run-browser-4#case-46-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-46-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/path","valueSha256":"9558c67725de600e77734fe4ecb2dfd92a00e0f532ccd49d21ac9312c329dc0b","matched":true,"value":"/rest/v1/rpc/get_session_detail"},{"id":"run-browser-4#case-46-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-4#case-46-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-4#case-46-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-46-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-46-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-46-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-46-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/records/0/id","valueSha256":"5a4393a9a8d0abc042b08ac852f46b56fec8376f0df2b6dc1c30e4f5f1259781","matched":true,"value":"detail-read-rejection"},{"id":"run-browser-4#case-46-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"4cb6a2c1c4eff3a91cc29d01fe4ba051c39f68cc166cfb95233d2ac217d06c4b","matched":true,"value":"get_session_detail"},{"id":"run-browser-4#case-46-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-46-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-46-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-047","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/checkpoints","valueSha256":"3f46bc3f28b6ffde9e0a97933ac98f16ac1134acaf68f877cb1736e411337fa3","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":15},{"id":"checkpoint-2","passed":true,"assertions":26},{"id":"checkpoint-3","passed":true,"assertions":18}]},{"id":"run-browser-4#case-46-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-047","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/completion","valueSha256":"e9aa7f00e667e753c8d7c065bc2f0b87e63c32401839353390c912cd09523f23","matched":true,"value":{"caseId":"CASE-047","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":2,"frontend-state":2,"postgresql-readback":1,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"detail-read-unavailable","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_session_detail","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":3,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"detail-read-unavailable","origin":"supabase","method":"POST","path":"/rest/v1/rpc/get_session_detail","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/get_session_detail"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"detail-read-rejection","repetition":1,"operationName":"get_session_detail","diagnosticKey":"screen_rpc_failed","clientEventId":"6d11dfd1-e6c1-464c-9f22-6acb06cb5399","operationId":"rpc:get_session_detail:d9dedea2-beaa-4a18-af62-bc8780793dc5","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-46-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-047","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls","valueSha256":"d13e6f5208da471ccd3f47c7c5df531689b5adeea17abafe9799e079932ff178","matched":true,"value":[{"id":"case047-purpose-control","description":"늦은 첫 기록 응답이 현재 두 번째 기록 제목을 덮어쓰는 결함","boundary":"dom","status":"passed","expected":{"current":true,"stale":false},"comparator":{"kind":"deepEqual"},"normalActual":{"current":true,"stale":false},"normal":{"matched":true},"negativeActual":{"current":false,"stale":true},"negative":{"matched":false,"applied":{"count":1}},"restoredActual":{"current":true,"stale":false},"restored":{"matched":true},"durationMs":41}]},{"id":"run-browser-4#case-46-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-047","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls/0/normalActual","valueSha256":"8d96d385aae3773521fddc2c79387f52013717a2992705168bea99c592c302d9","matched":true,"value":{"current":true,"stale":false}},{"id":"run-browser-4#case-46-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-047","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls/0/negativeActual","valueSha256":"d66efb66918a30a80805ff538698bea39ce7190f84b3cfadf7e880d58683ed7c","matched":true,"value":{"current":false,"stale":true}},{"id":"run-browser-4#case-46-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-047","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls/0/restoredActual","valueSha256":"8d96d385aae3773521fddc2c79387f52013717a2992705168bea99c592c302d9","matched":true,"value":{"current":true,"stale":false}},{"id":"run-browser-4#case-46-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-047","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-46-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-047","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-46-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-047","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-46-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-047","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-46-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-46-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/quality/cleanup/resources","valueSha256":"64bfd9b183fe3a68ec6f568593298abb9bdd5b3fe4702d7cd281dee5c653e75a","matched":true,"value":[{"id":"control-case047-purpose-control","status":"passed","settled":true,"durationMs":3},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":115}]},{"id":"run-browser-4#case-46-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-46-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-46-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-46-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-46-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-46-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-46-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-46-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-46-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/startedAt","valueSha256":"79618bffd8ed1f4e162b650adbec37c46017b7dab21970b4649a15017a70e87d","matched":true,"value":"2026-09-09T20:04:00.846Z"},{"id":"run-browser-4#case-46-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/finishedAt","valueSha256":"0c23c0bd4ac2442ff876564f701ca904e8392976d5f6eff21e744868a007ceba","matched":true,"value":"2026-09-09T20:04:13.225Z"},{"id":"run-browser-4#case-46-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-46-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-46-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-047","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-46-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/pages/0/pageClosed","valueSha256":"08f45e956d3c305aa83e665102726d726cde79e7c7dd48e3e7a70f5c73327797","matched":true,"value":{"sequence":363,"pendingRequestIds":[]}},{"id":"run-browser-4#case-46-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/pages/0/routeCleanup","valueSha256":"5b950c0008ded1e9bb77ba5b95a7bb1e37d467e2c54d172eb9a859fdd747d9e4","matched":true,"value":[{"startedSequence":361,"status":"completed","completedSequence":362}]},{"id":"run-browser-4#case-46-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/pages/0/observerDisposal","valueSha256":"3fde302700012cb07a8c179924d2272d188679449ea4cd1f717e885314296bfc","matched":true,"value":{"status":"completed","closeSequence":363,"startedSequence":364,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":365}},{"id":"run-browser-4#case-46-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-46-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-047","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/3/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-049","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/5/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-48-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-049","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/5/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-48-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-049","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-48-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-049","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/5/specs/0/tests/0/results/0/duration","valueSha256":"1a9953ed2d6b8973522d3f9611bc5216e90241852660c548ce59ae894f85ae74","matched":true,"value":5229},{"id":"run-browser-4#case-48-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-049","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/checkpoints","valueSha256":"5241cea38ec9b2adec26e75402379540ee630ad649f99bc7eea9012e5ed3ca5d","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":8},{"id":"rejected-exchange","passed":true,"assertions":8},{"id":"checkpoint-2","passed":true,"assertions":15},{"id":"checkpoint-3","passed":true,"assertions":8},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-4#case-48-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-049","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-049","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-049","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-049","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/id","valueSha256":"2032c7c48a4d90cac23cd2419b31444b163b21b7b20bd504606f8e5007ac4ab3","matched":true,"value":"rejected-pkce-exchange"},{"id":"run-browser-4#case-48-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-48-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/path","valueSha256":"6bc6f9fc739724cc52485521811aa2a916b73171dd034a682bd281b574729199","matched":true,"value":"/auth/v1/token?grant_type=pkce"},{"id":"run-browser-4#case-48-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-4#case-48-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-48-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-48-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-48-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-48-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-48-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/records/0/id","valueSha256":"1232233a4251ac9cefeb4ed6139dc1a5512670190cce9c2a5ae6c96188adf96d","matched":true,"value":"rejected-pkce-exchange-observation"},{"id":"run-browser-4#case-48-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"23a0f98c3270ed2c89a456896db4ba088aef4d085a25cfa00d37bfa7306b8548","matched":true,"value":"auth:token"},{"id":"run-browser-4#case-48-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-48-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-48-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-049","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/checkpoints","valueSha256":"5241cea38ec9b2adec26e75402379540ee630ad649f99bc7eea9012e5ed3ca5d","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":8},{"id":"rejected-exchange","passed":true,"assertions":8},{"id":"checkpoint-2","passed":true,"assertions":15},{"id":"checkpoint-3","passed":true,"assertions":8},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-4#case-48-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-049","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/completion","valueSha256":"a4952fb704b95d778261176dbfddc8dd3371cf772bd54fa7df9c073422e5bf71","matched":true,"value":{"caseId":"CASE-049","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":2,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"rejected-pkce-exchange","origin":"supabase","method":"POST","path":"/auth/v1/token?grant_type=pkce","status":400,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"rejected-pkce-exchange","origin":"supabase","method":"POST","path":"/auth/v1/token?grant_type=pkce","status":400,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/auth/v1/token?[redacted]"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"rejected-pkce-exchange-observation","repetition":1,"operationName":"auth:token","diagnosticKey":"http_failure","clientEventId":"02935ad7-016a-4bbc-912d-2e7bca67e87f","operationId":"","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-48-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-049","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls","valueSha256":"06d0165928b708a26106ea9e37a5b720befd2c8cda1259557f7bb8969a3c3185","matched":true,"value":[{"id":"case049-purpose-control","description":"취소 후 재로그인이 기존 identity 목록을 잃는 인증 회귀","boundary":"http-response","status":"passed","expected":["dccb6113-7fc0-4504-af22-f07bf1c3da0e"],"comparator":{"kind":"deepEqual"},"normalActual":["dccb6113-7fc0-4504-af22-f07bf1c3da0e"],"normal":{"matched":true},"negativeActual":[],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/auth/v1/user"}},"restoredActual":["dccb6113-7fc0-4504-af22-f07bf1c3da0e"],"restored":{"matched":true},"durationMs":168}]},{"id":"run-browser-4#case-48-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-049","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls/0/normalActual","valueSha256":"6d2e74fd78b393c8c39b46d54757617b5b370a8ff82f2d98c6049e0a2aefb1af","matched":true,"value":["dccb6113-7fc0-4504-af22-f07bf1c3da0e"]},{"id":"run-browser-4#case-48-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-049","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls/0/negativeActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-049","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls/0/restoredActual","valueSha256":"6d2e74fd78b393c8c39b46d54757617b5b370a8ff82f2d98c6049e0a2aefb1af","matched":true,"value":["dccb6113-7fc0-4504-af22-f07bf1c3da0e"]},{"id":"run-browser-4#case-48-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-049","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-48-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-049","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-48-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-049","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-48-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-049","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-48-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-48-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/quality/cleanup/resources","valueSha256":"75099a1798255210a45fe8581292b14d324c632a18aabf8fdbb81e4b00de7780","matched":true,"value":[{"id":"control-case049-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":79}]},{"id":"run-browser-4#case-48-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-48-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-48-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-48-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-48-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-48-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-48-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-48-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-48-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/startedAt","valueSha256":"239d19574afa509aa8db25103a148ba9c0ab70d3df3816cd92d09cdc2b5afbfc","matched":true,"value":"2026-09-09T20:04:13.483Z"},{"id":"run-browser-4#case-48-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/finishedAt","valueSha256":"d5aa4e360688bf6074512f844b9f9691f4e4d924f96115e04709cde21accaba1","matched":true,"value":"2026-09-09T20:04:18.637Z"},{"id":"run-browser-4#case-48-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-48-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-48-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-049","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-48-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/pages/0/pageClosed","valueSha256":"e9aee8fd258679a36924d4f0d5a015bdb046bf58156d25a01975ac23bfad28c0","matched":true,"value":{"sequence":128,"pendingRequestIds":[]}},{"id":"run-browser-4#case-48-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/pages/0/routeCleanup","valueSha256":"bc4ddfdc62f8a549e041ca96d050c007f65d353bdc2dbbe8d6a9a112c371bf70","matched":true,"value":[{"startedSequence":126,"status":"completed","completedSequence":127}]},{"id":"run-browser-4#case-48-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/pages/0/observerDisposal","valueSha256":"4e56a7d94e481190ab5911374c8de2eb239e9b494d1e003a67c764e58c86fdeb","matched":true,"value":{"status":"completed","closeSequence":128,"startedSequence":129,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":130}},{"id":"run-browser-4#case-48-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-48-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-049","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/4/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-050","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/6/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-49-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-050","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/6/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-49-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-050","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-49-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-050","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/6/specs/0/tests/0/results/0/duration","valueSha256":"8af1f2584822ac9fb9d1c47c459fc6e817c2083c0caac9a72679a6a9b9f181f0","matched":true,"value":4352},{"id":"run-browser-4#case-49-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-050","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/checkpoints","valueSha256":"14918b38f3cc7e9fb22a68ca3210b62ea720c6c4dab4efeac4a60abc17babbd2","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":33},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-4#case-49-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-050","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-050","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-050","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-050","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/id","valueSha256":"21360a749e6142d1befe17349806328853e69131c992a49594899ebbd95f7f20","matched":true,"value":"declared-post-503-1"},{"id":"run-browser-4#case-49-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-49-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/path","valueSha256":"a2636576c212e02f7ed142431243ca4f61a466c55ce1632e5fb1b31367ce3abd","matched":true,"value":"/rest/v1/rpc/set_profile_handle_v1"},{"id":"run-browser-4#case-49-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-4#case-49-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-49-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-49-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-49-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-49-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-49-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/records/0/id","valueSha256":"5eb94c39ec926151f6008a089ef9bcb3f9bfcf534e8a2c44546f855c2231de2a","matched":true,"value":"mutation-rpc-set-profile-handle-v1-recovery"},{"id":"run-browser-4#case-49-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"e8bb35322142345d380e6bd4aceb6d630e2f74fa6371f4416385ca564e5760bb","matched":true,"value":"set_profile_handle_v1"},{"id":"run-browser-4#case-49-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-49-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-49-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-050","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/checkpoints","valueSha256":"14918b38f3cc7e9fb22a68ca3210b62ea720c6c4dab4efeac4a60abc17babbd2","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":33},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-4#case-49-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-050","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/completion","valueSha256":"cfdcaf0f2db0abf47591e626578d1a39fc80741ac036c53f4c11963440139544","matched":true,"value":{"caseId":"CASE-050","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"postgresql-readback":1,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"declared-post-503-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/set_profile_handle_v1","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"declared-post-503-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/set_profile_handle_v1","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/set_profile_handle_v1"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"mutation-rpc-set-profile-handle-v1-recovery","repetition":1,"operationName":"set_profile_handle_v1","diagnosticKey":"rpc_failure","clientEventId":"def26b5a-dfcf-4c99-b400-b5e235b69510","operationId":"rpc:set_profile_handle_v1:c2dfb7b4-ef60-43fa-8023-d6ddb042b14e","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-49-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-050","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls","valueSha256":"f86c52489b51240f85a05bee487d1da4d99367e5c5c72c3859fab93d0eb8108f","matched":true,"value":[{"id":"case050-purpose-control","description":"실패 후 재시도 편집창의 아이디 draft가 유실되는 결함","boundary":"dom","status":"passed","expected":"case050_mtuj1cqg1451","comparator":{"kind":"deepEqual"},"normalActual":"case050_mtuj1cqg1451","normal":{"matched":true},"negativeActual":"","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"case050_mtuj1cqg1451","restored":{"matched":true},"durationMs":50}]},{"id":"run-browser-4#case-49-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-050","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls/0/normalActual","valueSha256":"7a7d2ce84012d9e321fc62e9e3d48e7e8d93560a4a91e633610ecc58698e536c","matched":true,"value":"case050_mtuj1cqg1451"},{"id":"run-browser-4#case-49-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-050","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls/0/negativeActual","valueSha256":"12ae32cb1ec02d01eda3581b127c1fee3b0dc53572ed6baf239721a03d82e126","matched":true,"value":""},{"id":"run-browser-4#case-49-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-050","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls/0/restoredActual","valueSha256":"7a7d2ce84012d9e321fc62e9e3d48e7e8d93560a4a91e633610ecc58698e536c","matched":true,"value":"case050_mtuj1cqg1451"},{"id":"run-browser-4#case-49-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-050","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-49-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-050","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-49-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-050","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-49-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-050","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-49-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-49-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/quality/cleanup/resources","valueSha256":"d2fd7001e5c8791cbc061557e0c760fe4ad6cf7e03c0f633ac438b55e9c0365b","matched":true,"value":[{"id":"control-case050-purpose-control","status":"passed","settled":true,"durationMs":7},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":85}]},{"id":"run-browser-4#case-49-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-49-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-49-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-49-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-49-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-49-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-49-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-49-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-49-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/startedAt","valueSha256":"96bc9502e42b2d7428e10af1671575ae3109ee1422a672e7854d68390093925b","matched":true,"value":"2026-09-09T20:04:19.000Z"},{"id":"run-browser-4#case-49-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/finishedAt","valueSha256":"c0af1b3b14010f1a8dd4c9ff59e8195e84f162ea9cc478eee4ac11721e9daf3e","matched":true,"value":"2026-09-09T20:04:23.241Z"},{"id":"run-browser-4#case-49-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-49-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-49-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-050","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-49-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/pages/0/pageClosed","valueSha256":"842cf27950d72706c32fbae81416287f3730e3d238e453668b9e905b8e22f0db","matched":true,"value":{"sequence":152,"pendingRequestIds":[]}},{"id":"run-browser-4#case-49-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/pages/0/routeCleanup","valueSha256":"8aca9a4a7468d9fb2828db25e9794b413e93b62dfa07b12e487d73896eb11cfb","matched":true,"value":[{"startedSequence":150,"status":"completed","completedSequence":151}]},{"id":"run-browser-4#case-49-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/pages/0/observerDisposal","valueSha256":"ccea9e1fb0edb05985cb27edd9f46234f2fc4fa4c26795d5a1798280dd5e16e4","matched":true,"value":{"status":"completed","closeSequence":152,"startedSequence":153,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":154}},{"id":"run-browser-4#case-49-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-49-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-050","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/5/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-051","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/7/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-50-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-051","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/7/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-50-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-051","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-50-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-051","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/7/specs/0/tests/0/results/0/duration","valueSha256":"9b2bcad14d76c8c031980720f6f725c9e35aad6dfe0bda25a9d1fb0fd808546f","matched":true,"value":3814},{"id":"run-browser-4#case-50-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-051","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/checkpoints","valueSha256":"7cfd2f42c42d1ccfee4cd6a48a2baa1843104a6948343193ab31a687ad05f654","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":24},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-4#case-50-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-051","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-051","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-051","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-051","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-50-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-50-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/records/0/id","valueSha256":"45ac02d09b21f160e257503711ee89c68538699814ec799e0240f5f3941feded","matched":true,"value":"social-identity-social-identity-link-return-recovery"},{"id":"run-browser-4#case-50-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"946b3b9a08cd62b85f6443d01aff5eaba2f648bb397e9e928632c31b164accbd","matched":true,"value":"social_identity_link_return"},{"id":"run-browser-4#case-50-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-50-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-50-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-051","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/checkpoints","valueSha256":"7cfd2f42c42d1ccfee4cd6a48a2baa1843104a6948343193ab31a687ad05f654","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":24},{"id":"journey-completion","passed":true,"assertions":17}]},{"id":"run-browser-4#case-50-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-051","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/completion","valueSha256":"177d237655a495e9746ced248923fc4d23b28074fbe2053f7b3c879c2ad07dd0","matched":true,"value":{"caseId":"CASE-051","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"social-identity-social-identity-link-return-recovery","repetition":1,"operationName":"social_identity_link_return","diagnosticKey":"identity_link_return_failed","clientEventId":"d1706a51-aa9b-45cd-8a69-7dac6c653453","operationId":"","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-50-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-051","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls","valueSha256":"b24a8239e5dc5e4f147e27511077bb3ff892209cfa35a56375b40a5235cf35ef","matched":true,"value":[{"id":"case051-purpose-control","description":"실패한 계정 연결이 원래 Auth identity를 제거하는 결함","boundary":"http-response","status":"passed","expected":["75b4f967-d169-4f65-9dda-08cb74278fec"],"comparator":{"kind":"deepEqual"},"normalActual":["75b4f967-d169-4f65-9dda-08cb74278fec"],"normal":{"matched":true},"negativeActual":[],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/auth/v1/admin/users/0c658650-3916-412c-ad3e-5774f69727da"}},"restoredActual":["75b4f967-d169-4f65-9dda-08cb74278fec"],"restored":{"matched":true},"durationMs":106}]},{"id":"run-browser-4#case-50-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-051","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls/0/normalActual","valueSha256":"e958f0517b69d923e6104311fc174cb804c393494d2bbbab0234296eb4107f77","matched":true,"value":["75b4f967-d169-4f65-9dda-08cb74278fec"]},{"id":"run-browser-4#case-50-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-051","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls/0/negativeActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-051","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls/0/restoredActual","valueSha256":"e958f0517b69d923e6104311fc174cb804c393494d2bbbab0234296eb4107f77","matched":true,"value":["75b4f967-d169-4f65-9dda-08cb74278fec"]},{"id":"run-browser-4#case-50-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-051","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-50-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-051","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-50-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-051","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-50-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-051","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-50-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-50-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/quality/cleanup/resources","valueSha256":"5477c546b11ff5479601bcb8cc5c3cf13abc0bb00d2b0a52ca9e3fc4424b8c6d","matched":true,"value":[{"id":"control-case051-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":85}]},{"id":"run-browser-4#case-50-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-50-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-50-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-50-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-50-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-50-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-50-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-50-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-50-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/startedAt","valueSha256":"fb7f0fca9cff8817433f00797068998f363b13080269669ccdb5542ecd3cc778","matched":true,"value":"2026-09-09T20:04:23.487Z"},{"id":"run-browser-4#case-50-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/finishedAt","valueSha256":"e25dfda81f85c695e1f91306f5f54a2d9990a23f1535deefe03e02cdfaf3899e","matched":true,"value":"2026-09-09T20:04:27.200Z"},{"id":"run-browser-4#case-50-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-50-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-50-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-051","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-50-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/pages/0/pageClosed","valueSha256":"90200257ba8a50aca37c51f876131437f0318853410a2bb8ad21fd3578f77333","matched":true,"value":{"sequence":131,"pendingRequestIds":[]}},{"id":"run-browser-4#case-50-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/pages/0/routeCleanup","valueSha256":"b28dfa7a1cf5c5947e69a03c0c62e8627ea46c575f630fb38f71c878de6ba71d","matched":true,"value":[{"startedSequence":129,"status":"completed","completedSequence":130}]},{"id":"run-browser-4#case-50-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/pages/0/observerDisposal","valueSha256":"33c041e3e485896fc45fd659e6f987f4f92ac5f347fc57301363925e8292a093","matched":true,"value":{"status":"completed","closeSequence":131,"startedSequence":132,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":133}},{"id":"run-browser-4#case-50-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-50-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-051","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/6/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-052","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/8/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-51-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-052","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/8/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-51-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-052","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-51-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-052","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/8/specs/0/tests/0/results/0/duration","valueSha256":"899bf6f7325155fca20a5cb68048c8333a061eef601e0d3e718f113a7d7f70f6","matched":true,"value":5758},{"id":"run-browser-4#case-51-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-052","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/checkpoints","valueSha256":"2044c4a202baea2655ee3dffde72f9c4c984999a93b66b37783ac58cd98e2b0f","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":42},{"id":"journey-completion","passed":true,"assertions":27}]},{"id":"run-browser-4#case-51-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-052","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-052","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-052","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-052","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/id","valueSha256":"11d574b51be44ba75674314e32008714738cad1495504c55322c0f3ddfb99ab1","matched":true,"value":"declared-post-403-1"},{"id":"run-browser-4#case-51-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-51-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/path","valueSha256":"d81b656c88b3e548f6a7cd3b76c346135ed9f9175745815da4a410b9ec65052e","matched":true,"value":"/rest/v1/rpc/set_session_like_v1"},{"id":"run-browser-4#case-51-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/status","valueSha256":"d26eae87829adde551bf4b852f9da6b8c3c2db9b65b8b68870632a2db5f53e00","matched":true,"value":403},{"id":"run-browser-4#case-51-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-51-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-51-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-51-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-fault-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/id","valueSha256":"6d37bfbf6c23f38710d7af7bbba0a9eabb936ce880bfad765a56812e3aa931ae","matched":true,"value":"declared-post-400-1"},{"id":"run-browser-4#case-51-fault-1-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-51-fault-1-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/path","valueSha256":"aec8e32885f6bdd4a01a825b6d0e5035e786fe92cbcd11386c349b08e596f23a","matched":true,"value":"/rest/v1/rpc/add_session_comment_v1"},{"id":"run-browser-4#case-51-fault-1-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-4#case-51-fault-1-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-51-fault-1-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-51-fault-1-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-51-fault-1-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-fault-1-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/1/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-fault-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/id","valueSha256":"21360a749e6142d1befe17349806328853e69131c992a49594899ebbd95f7f20","matched":true,"value":"declared-post-503-1"},{"id":"run-browser-4#case-51-fault-2-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-51-fault-2-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/path","valueSha256":"b7efabb756255c7ec1c77ead93741354b6604a01f9f5d45a741cef7afbf7174f","matched":true,"value":"/rest/v1/rpc/unfollow_user_v1"},{"id":"run-browser-4#case-51-fault-2-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-4#case-51-fault-2-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/requestCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-51-fault-2-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-51-fault-2-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-51-fault-2-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-fault-2-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/expectedFaultEvidence/faults/2/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/expectedCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-4#case-51-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/observedCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-4#case-51-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/0/id","valueSha256":"2b50e7efb91014c04f1952cf802c174d8652e8e055895a50510f42c3c69c6a44","matched":true,"value":"mutation-rpc-set-session-like-v1-recovery"},{"id":"run-browser-4#case-51-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"6b37aeebff6a421df6cf4a32197d491129f82df24b460fdac1c4700d90e97713","matched":true,"value":"set_session_like_v1"},{"id":"run-browser-4#case-51-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/1/id","valueSha256":"c888c1c2b6888f5f15febc73eb6dff1cae46f5e3bf8a3a9af7f88d6635310cc5","matched":true,"value":"mutation-rpc-add-session-comment-v1-recovery"},{"id":"run-browser-4#case-51-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"74ba3d7764fc66e24e4a661e32165ebb32cd5f19cab99a6fc4c16e606d2a4627","matched":true,"value":"add_session_comment_v1"},{"id":"run-browser-4#case-51-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-required-event-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/2/id","valueSha256":"c70f56fae82869edf5a2f428e003d5aedfc1f61bc17e0de0cd2e84d7812dd07f","matched":true,"value":"mutation-rpc-unfollow-user-v1-recovery"},{"id":"run-browser-4#case-51-required-event-2-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/2/operationName","valueSha256":"cdbe4b6bca0b717831de9a86d28e0521d21b97ff6ec8363286a06f7ec8b9731d","matched":true,"value":"unfollow_user_v1"},{"id":"run-browser-4#case-51-required-event-2-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/2/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-required-event-2-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion/requiredObservationEvidence/records/2/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-052","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/checkpoints","valueSha256":"2044c4a202baea2655ee3dffde72f9c4c984999a93b66b37783ac58cd98e2b0f","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":42},{"id":"journey-completion","passed":true,"assertions":27}]},{"id":"run-browser-4#case-51-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-052","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/completion","valueSha256":"70316076457b5aedfc1b0a3f39fc5acb6f54555c172132122bac074912f4d6db","matched":true,"value":{"caseId":"CASE-052","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"postgresql-readback":1,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"declared-post-403-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/set_session_like_v1","status":403,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]},{"id":"declared-post-400-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/add_session_comment_v1","status":400,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]},{"id":"declared-post-503-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/unfollow_user_v1","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":2,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 403 (Forbidden)","id":"declared-post-403-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/set_session_like_v1","status":403,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/set_session_like_v1"},{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"declared-post-400-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/add_session_comment_v1","status":400,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/add_session_comment_v1"},{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"declared-post-503-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/unfollow_user_v1","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/unfollow_user_v1"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":3,"observedCount":3,"records":[{"sequence":1,"id":"mutation-rpc-set-session-like-v1-recovery","repetition":1,"operationName":"set_session_like_v1","diagnosticKey":"rpc_failure","clientEventId":"122ab300-7bfc-4162-b3fd-c43ab4afacae","operationId":"rpc:set_session_like_v1:662c678a-d6a3-4247-b6e5-e2ca6da6b959","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"mutation-rpc-add-session-comment-v1-recovery","repetition":1,"operationName":"add_session_comment_v1","diagnosticKey":"rpc_failure","clientEventId":"642d48e8-fd19-4e8b-99ec-8e58774de678","operationId":"rpc:add_session_comment_v1:ed8669e1-e9e0-4ca5-977a-b6006832e763","receiptStored":true,"storedRowVerified":true},{"sequence":3,"id":"mutation-rpc-unfollow-user-v1-recovery","repetition":1,"operationName":"unfollow_user_v1","diagnosticKey":"rpc_failure","clientEventId":"ea02421e-efa1-440e-91c2-52768518cafc","operationId":"rpc:unfollow_user_v1:b356dcfb-3908-48c8-ace4-366c2ec973ac","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-51-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-052","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls","valueSha256":"eb4144439d3fead15a3f9c4c2a8b8965cd782f4c484e4ceb0ceab7ba1690ca90","matched":true,"value":[{"id":"case052-purpose-control","description":"좋아요 실패 뒤 optimistic 선택 표시가 false로 되돌아오지 않는 결함","boundary":"dom","status":"passed","expected":"false","comparator":{"kind":"deepEqual"},"normalActual":"false","normal":{"matched":true},"negativeActual":"true","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"false","restored":{"matched":true},"durationMs":49}]},{"id":"run-browser-4#case-51-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-052","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls/0/normalActual","valueSha256":"076de6e730df0b4c3860877a0f619c6ac11f8aefd78313ac793a2a703c026869","matched":true,"value":"false"},{"id":"run-browser-4#case-51-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-052","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls/0/negativeActual","valueSha256":"18d10c7d2b4b04aaf04254d1ae5d655a5dc0407cbcdd5a8c3986e985370f36ee","matched":true,"value":"true"},{"id":"run-browser-4#case-51-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-052","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls/0/restoredActual","valueSha256":"076de6e730df0b4c3860877a0f619c6ac11f8aefd78313ac793a2a703c026869","matched":true,"value":"false"},{"id":"run-browser-4#case-51-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-052","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-052","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-51-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-052","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-51-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-052","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-51-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/quality/cleanup/resources","valueSha256":"84003c4a4c57e70be1fcec3c22671901caccc786c14ea938ef65124e426aec8c","matched":true,"value":[{"id":"control-case052-purpose-control","status":"passed","settled":true,"durationMs":10},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":66}]},{"id":"run-browser-4#case-51-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-51-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-51-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-51-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-51-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-51-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-51-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-51-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-51-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/startedAt","valueSha256":"d0617452864a78770bfb5667eeb4c482a2f254b68e3bb1fc4af05974583d4c72","matched":true,"value":"2026-09-09T20:04:27.397Z"},{"id":"run-browser-4#case-51-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/finishedAt","valueSha256":"e1815168289f1677f73609c4bf095a594b6e9153a2fe97c61c0b73d490eca980","matched":true,"value":"2026-09-09T20:04:33.075Z"},{"id":"run-browser-4#case-51-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-51-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-51-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-052","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-51-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/pages/0/pageClosed","valueSha256":"48a8808f443ab4b1bf481a7db961be438b5a01132adecc1480f8d6a7ac2c0a39","matched":true,"value":{"sequence":173,"pendingRequestIds":[]}},{"id":"run-browser-4#case-51-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/pages/0/routeCleanup","valueSha256":"0581c9533d4a37c465a47900775c7727c46d8afd35af758ecef490fa1e4a5de3","matched":true,"value":[{"startedSequence":171,"status":"completed","completedSequence":172}]},{"id":"run-browser-4#case-51-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/pages/0/observerDisposal","valueSha256":"f182bc8ea54287ede2fea21c2cde2eecea66371e3c595f60ab9a333bc7190218","matched":true,"value":{"status":"completed","closeSequence":173,"startedSequence":174,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":175}},{"id":"run-browser-4#case-51-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-51-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-052","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/7/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/9/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-52-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/9/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-52-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-52-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-053","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/9/specs/0/tests/0/results/0/duration","valueSha256":"5a02ef00b4ef9b912733ec4441febeb3a4a57122ae5fcc57bd079b26e07215cf","matched":true,"value":4820},{"id":"run-browser-4#case-52-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/quality/checkpoints","valueSha256":"17f95759e24da8e6a956a5feb0b2254b2be26b5c9a156aaabd4d452f492574c7","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":27},{"id":"journey-completion","passed":true,"assertions":25}]},{"id":"run-browser-4#case-52-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-053","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/quality/checkpoints","valueSha256":"17f95759e24da8e6a956a5feb0b2254b2be26b5c9a156aaabd4d452f492574c7","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":27},{"id":"journey-completion","passed":true,"assertions":25}]},{"id":"run-browser-4#case-52-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/completion","valueSha256":"cfbb54517bc49e3bbf0695e7ad52d20b28c35bc7f854413f7a58b338a3f36460","matched":true,"value":{"caseId":"CASE-053","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"postgresql-readback":1,"authenticated-api-rpc":1,"reload-reentry":1,"frontend-state":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[]}},{"id":"run-browser-4#case-52-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/quality/controls","valueSha256":"5c00b885f8d2d0092ae41092b4e157a66fed8c720a3a58f98bb669928cd6c459","matched":true,"value":[{"id":"case053-purpose-control","description":"가입 철회 후 서버에 멤버 행이 남는 권한 폐기 결함","boundary":"http-response","status":"passed","expected":[],"comparator":{"kind":"deepEqual"},"normalActual":[],"normal":{"matched":true},"negativeActual":[{"user_id":"ddfd63b3-cf12-4f82-bd0b-c6bcc3c9e441"}],"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/group_members"}},"restoredActual":[],"restored":{"matched":true},"durationMs":10}]},{"id":"run-browser-4#case-52-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-52-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/quality/cleanup/resources","valueSha256":"9e13ecc596ad278a2710a93992ee24f8c543a67bb8acae342bbf17ba5b6f0247","matched":true,"value":[{"id":"control-case053-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":52},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":2}]},{"id":"run-browser-4#case-52-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-52-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-52-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-52-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-52-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-52-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-52-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-52-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-52-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/startedAt","valueSha256":"a6de3d015123e01c9f224c4efad62e9af6831eda066c9edead334fbf6ea8f978","matched":true,"value":"2026-09-09T20:04:33.331Z"},{"id":"run-browser-4#case-52-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/finishedAt","valueSha256":"6f1df06297d5488f6f69b3579901281db49b34126fcdad4832f21cd0ab38cc03","matched":true,"value":"2026-09-09T20:04:38.050Z"},{"id":"run-browser-4#case-52-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-52-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-52-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-52-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/0/pageClosed","valueSha256":"5ae65fa53132074dd7699cc8c35d24d809dbddc2794688e78251beb6424b3542","matched":true,"value":{"sequence":189,"pendingRequestIds":[]}},{"id":"run-browser-4#case-52-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/0/routeCleanup","valueSha256":"c7c982925e86fee8036046dc4fa6767f4a51dc225454cd7a17a1c6dc25689e47","matched":true,"value":[{"startedSequence":187,"status":"completed","completedSequence":188}]},{"id":"run-browser-4#case-52-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/0/observerDisposal","valueSha256":"ded3d9090f1efd8074d55d854f5723a6bae9f36ff1ca1b1680803d8472327055","matched":true,"value":{"status":"completed","closeSequence":189,"startedSequence":190,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":191}},{"id":"run-browser-4#case-52-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/1/pageClosed","valueSha256":"90e4a6085ef697a5c6992d73f4682a04efb577239e016d155f1711304f258c46","matched":true,"value":{"sequence":67,"pendingRequestIds":[]}},{"id":"run-browser-4#case-52-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/1/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/1/observerDisposal","valueSha256":"e51c3733ac182fca9cee90589dc41f4a142d5aa93752c07f115e8b1e8364bd77","matched":true,"value":{"status":"completed","closeSequence":67,"startedSequence":68,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":69}},{"id":"run-browser-4#case-52-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-52-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/8/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-054","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/10/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-53-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-054","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/10/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-53-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-054","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-53-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-054","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/10/specs/0/tests/0/results/0/duration","valueSha256":"cad0152e4e3ec7e4c34146abe3b69d44f83145f1b871339d35ddf8842478face","matched":true,"value":6173},{"id":"run-browser-4#case-53-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-054","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/checkpoints","valueSha256":"2df95ea0ebe07b132a9b29bdde4d070469c867a0b4a69651ffde3c43e0b492b7","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":41},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-4#case-53-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-054","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-054","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-054","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-054","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/id","valueSha256":"21360a749e6142d1befe17349806328853e69131c992a49594899ebbd95f7f20","matched":true,"value":"declared-post-503-1"},{"id":"run-browser-4#case-53-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/method","valueSha256":"e46d3ae943664116b752137af856edb5f377c6d8012a39e3ef7f39f80a802cac","matched":true,"value":"POST"},{"id":"run-browser-4#case-53-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/path","valueSha256":"2602e93385ca0258b372ed2bc131dc75f39fdfda4c91996ff3c3d37a093dd7e1","matched":true,"value":"/rest/v1/rpc/set_own_custom_exercise_active"},{"id":"run-browser-4#case-53-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/status","valueSha256":"7182dd431b5c8833ed3c8a02c8615780df8dca7d83ed4166962b207f45a656b5","matched":true,"value":503},{"id":"run-browser-4#case-53-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce","matched":true,"value":3},{"id":"run-browser-4#case-53-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-53-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-53-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-53-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-53-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/records/0/id","valueSha256":"90dc2c3fb881d6d4ae6d29a923837fe954be1a4a7319e4acae0284a593b0ff9c","matched":true,"value":"mutation-rpc-set-own-custom-exercise-active-recovery"},{"id":"run-browser-4#case-53-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"3791176318793e71dc68bae177b6d317d9ab4cc934cda25893144d41b40172a9","matched":true,"value":"set_own_custom_exercise_active"},{"id":"run-browser-4#case-53-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-53-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-53-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-054","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/checkpoints","valueSha256":"2df95ea0ebe07b132a9b29bdde4d070469c867a0b4a69651ffde3c43e0b492b7","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":41},{"id":"journey-completion","passed":true,"assertions":18}]},{"id":"run-browser-4#case-53-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-054","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/completion","valueSha256":"1d08a05caf34180cbdeb6d18296783b68c1861b16602f80034a318ef686f09bf","matched":true,"value":{"caseId":"CASE-054","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"authenticated-api-rpc":1,"postgresql-readback":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"declared-post-503-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/set_own_custom_exercise_active","status":503,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":3,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 503 (Service Unavailable)","id":"declared-post-503-1","origin":"supabase","method":"POST","path":"/rest/v1/rpc/set_own_custom_exercise_active","status":503,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/rpc/set_own_custom_exercise_active"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"mutation-rpc-set-own-custom-exercise-active-recovery","repetition":1,"operationName":"set_own_custom_exercise_active","diagnosticKey":"rpc_failure","clientEventId":"f5c1755f-e892-46fb-97d8-ebdd65d4b170","operationId":"rpc:set_own_custom_exercise_active:c2f502f6-84ae-48f7-99f4-646d465cb7ff","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-53-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-054","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls","valueSha256":"c1252d210d996f4e63b17849ceaf3214657eb6b56a763247fe14a3afd6739bf0","matched":true,"value":[{"id":"case054-purpose-control","description":"종목 보관이 과거 운동 원본 세트 값을 바꾸는 금지 부작용","boundary":"http-response","status":"passed","expected":{"session":{"id":"6a871ca4-748b-4a03-8358-090618a79d0f","user_id":"fbf1954e-b3b0-4671-b0c4-ca8841ec6e1d","date":"2026-08-20","title":"CASE-054 mtuj1rma-557181","status":"completed","source":"barbelic","source_ref":"e2e-case-054-mtuj1rma-557181:feature:6066c71c-611b-47b6-8017-329c16fd6144","server_revision":1},"parts":[{"id":"ff0db26b-c312-462f-a6df-428fb1a7c546","session_id":"6a871ca4-748b-4a03-8358-090618a79d0f","session_exercise_id":"6196b064-eef2-4063-b0cd-2d59e98da222","exercise_id":"e98bb402-e463-44a2-b2b8-0d48560c7b5f","entry_kind":"exercise","position":1}],"sets":[{"id":"ceb33be0-caa5-468f-a14b-29a871f480a8","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":62.5,"reps":5,"position":1,"set_result":"completed"},{"id":"2364be5c-0dc1-4852-ba4a-d0320c27ed0d","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":77.5,"reps":3,"position":2,"set_result":"completed"}]},"comparator":{"kind":"deepEqual"},"normalActual":{"session":{"id":"6a871ca4-748b-4a03-8358-090618a79d0f","user_id":"fbf1954e-b3b0-4671-b0c4-ca8841ec6e1d","date":"2026-08-20","title":"CASE-054 mtuj1rma-557181","status":"completed","source":"barbelic","source_ref":"e2e-case-054-mtuj1rma-557181:feature:6066c71c-611b-47b6-8017-329c16fd6144","server_revision":1},"parts":[{"id":"ff0db26b-c312-462f-a6df-428fb1a7c546","session_id":"6a871ca4-748b-4a03-8358-090618a79d0f","session_exercise_id":"6196b064-eef2-4063-b0cd-2d59e98da222","exercise_id":"e98bb402-e463-44a2-b2b8-0d48560c7b5f","entry_kind":"exercise","position":1}],"sets":[{"id":"ceb33be0-caa5-468f-a14b-29a871f480a8","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":62.5,"reps":5,"position":1,"set_result":"completed"},{"id":"2364be5c-0dc1-4852-ba4a-d0320c27ed0d","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":77.5,"reps":3,"position":2,"set_result":"completed"}]},"normal":{"matched":true},"negativeActual":{"session":{"id":"6a871ca4-748b-4a03-8358-090618a79d0f","user_id":"fbf1954e-b3b0-4671-b0c4-ca8841ec6e1d","date":"2026-08-20","title":"CASE-054 mtuj1rma-557181","status":"completed","source":"barbelic","source_ref":"e2e-case-054-mtuj1rma-557181:feature:6066c71c-611b-47b6-8017-329c16fd6144","server_revision":1},"parts":[{"id":"ff0db26b-c312-462f-a6df-428fb1a7c546","session_id":"6a871ca4-748b-4a03-8358-090618a79d0f","session_exercise_id":"6196b064-eef2-4063-b0cd-2d59e98da222","exercise_id":"e98bb402-e463-44a2-b2b8-0d48560c7b5f","entry_kind":"exercise","position":1}],"sets":[{"id":"ceb33be0-caa5-468f-a14b-29a871f480a8","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":63.5,"reps":5,"position":1,"set_result":"completed"},{"id":"2364be5c-0dc1-4852-ba4a-d0320c27ed0d","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":77.5,"reps":3,"position":2,"set_result":"completed"}]},"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":{"session":{"id":"6a871ca4-748b-4a03-8358-090618a79d0f","user_id":"fbf1954e-b3b0-4671-b0c4-ca8841ec6e1d","date":"2026-08-20","title":"CASE-054 mtuj1rma-557181","status":"completed","source":"barbelic","source_ref":"e2e-case-054-mtuj1rma-557181:feature:6066c71c-611b-47b6-8017-329c16fd6144","server_revision":1},"parts":[{"id":"ff0db26b-c312-462f-a6df-428fb1a7c546","session_id":"6a871ca4-748b-4a03-8358-090618a79d0f","session_exercise_id":"6196b064-eef2-4063-b0cd-2d59e98da222","exercise_id":"e98bb402-e463-44a2-b2b8-0d48560c7b5f","entry_kind":"exercise","position":1}],"sets":[{"id":"ceb33be0-caa5-468f-a14b-29a871f480a8","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":62.5,"reps":5,"position":1,"set_result":"completed"},{"id":"2364be5c-0dc1-4852-ba4a-d0320c27ed0d","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":77.5,"reps":3,"position":2,"set_result":"completed"}]},"restored":{"matched":true},"durationMs":35}]},{"id":"run-browser-4#case-53-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-054","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls/0/normalActual","valueSha256":"eb15146b7462c7752bf9f1dec2ac8a3b62f4a2b9ec3123b9f7f6aa99d5984fcc","matched":true,"value":{"session":{"id":"6a871ca4-748b-4a03-8358-090618a79d0f","user_id":"fbf1954e-b3b0-4671-b0c4-ca8841ec6e1d","date":"2026-08-20","title":"CASE-054 mtuj1rma-557181","status":"completed","source":"barbelic","source_ref":"e2e-case-054-mtuj1rma-557181:feature:6066c71c-611b-47b6-8017-329c16fd6144","server_revision":1},"parts":[{"id":"ff0db26b-c312-462f-a6df-428fb1a7c546","session_id":"6a871ca4-748b-4a03-8358-090618a79d0f","session_exercise_id":"6196b064-eef2-4063-b0cd-2d59e98da222","exercise_id":"e98bb402-e463-44a2-b2b8-0d48560c7b5f","entry_kind":"exercise","position":1}],"sets":[{"id":"ceb33be0-caa5-468f-a14b-29a871f480a8","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":62.5,"reps":5,"position":1,"set_result":"completed"},{"id":"2364be5c-0dc1-4852-ba4a-d0320c27ed0d","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":77.5,"reps":3,"position":2,"set_result":"completed"}]}},{"id":"run-browser-4#case-53-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-054","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls/0/negativeActual","valueSha256":"89c45c598f60a78dda8fba09ab22bc9328f0b622998b9dbe87b1519b8cfb11be","matched":true,"value":{"session":{"id":"6a871ca4-748b-4a03-8358-090618a79d0f","user_id":"fbf1954e-b3b0-4671-b0c4-ca8841ec6e1d","date":"2026-08-20","title":"CASE-054 mtuj1rma-557181","status":"completed","source":"barbelic","source_ref":"e2e-case-054-mtuj1rma-557181:feature:6066c71c-611b-47b6-8017-329c16fd6144","server_revision":1},"parts":[{"id":"ff0db26b-c312-462f-a6df-428fb1a7c546","session_id":"6a871ca4-748b-4a03-8358-090618a79d0f","session_exercise_id":"6196b064-eef2-4063-b0cd-2d59e98da222","exercise_id":"e98bb402-e463-44a2-b2b8-0d48560c7b5f","entry_kind":"exercise","position":1}],"sets":[{"id":"ceb33be0-caa5-468f-a14b-29a871f480a8","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":63.5,"reps":5,"position":1,"set_result":"completed"},{"id":"2364be5c-0dc1-4852-ba4a-d0320c27ed0d","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":77.5,"reps":3,"position":2,"set_result":"completed"}]}},{"id":"run-browser-4#case-53-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-054","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls/0/restoredActual","valueSha256":"eb15146b7462c7752bf9f1dec2ac8a3b62f4a2b9ec3123b9f7f6aa99d5984fcc","matched":true,"value":{"session":{"id":"6a871ca4-748b-4a03-8358-090618a79d0f","user_id":"fbf1954e-b3b0-4671-b0c4-ca8841ec6e1d","date":"2026-08-20","title":"CASE-054 mtuj1rma-557181","status":"completed","source":"barbelic","source_ref":"e2e-case-054-mtuj1rma-557181:feature:6066c71c-611b-47b6-8017-329c16fd6144","server_revision":1},"parts":[{"id":"ff0db26b-c312-462f-a6df-428fb1a7c546","session_id":"6a871ca4-748b-4a03-8358-090618a79d0f","session_exercise_id":"6196b064-eef2-4063-b0cd-2d59e98da222","exercise_id":"e98bb402-e463-44a2-b2b8-0d48560c7b5f","entry_kind":"exercise","position":1}],"sets":[{"id":"ceb33be0-caa5-468f-a14b-29a871f480a8","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":62.5,"reps":5,"position":1,"set_result":"completed"},{"id":"2364be5c-0dc1-4852-ba4a-d0320c27ed0d","session_exercise_part_id":"ff0db26b-c312-462f-a6df-428fb1a7c546","load":77.5,"reps":3,"position":2,"set_result":"completed"}]}},{"id":"run-browser-4#case-53-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-054","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-53-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-054","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-53-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-054","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-53-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-054","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-53-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-53-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/quality/cleanup/resources","valueSha256":"43a2c067615a4a9619d3f05747e56ccfb009e46f67104171ab14909ee0c09186","matched":true,"value":[{"id":"control-case054-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":79}]},{"id":"run-browser-4#case-53-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-53-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-53-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-53-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-53-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-53-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-53-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-53-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-53-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/startedAt","valueSha256":"c3562d7140f2307df05c63d34321f6ae01f6a75b4003d49a505068a4353a63cc","matched":true,"value":"2026-09-09T20:04:38.290Z"},{"id":"run-browser-4#case-53-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/finishedAt","valueSha256":"f4c79146d50d65d53b4ab82d79a5803d2c93e872c4140b332249cb21e14783c0","matched":true,"value":"2026-09-09T20:04:44.363Z"},{"id":"run-browser-4#case-53-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-53-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-53-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-054","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-53-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/pages/0/pageClosed","valueSha256":"25a81a06b64d3742165cfc3bbb627ae00ab03010c0d3be45250054215ffade16","matched":true,"value":{"sequence":202,"pendingRequestIds":[]}},{"id":"run-browser-4#case-53-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/pages/0/routeCleanup","valueSha256":"2b533d39286dec1ae6039cc1949b377b54d3ed6d8f4cc9cf21a5b5355861d719","matched":true,"value":[{"startedSequence":200,"status":"completed","completedSequence":201}]},{"id":"run-browser-4#case-53-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/pages/0/observerDisposal","valueSha256":"f406eccbc8bb99f59b114b2b7af16877aeda49d33d34642b84f667a9e520167e","matched":true,"value":{"status":"completed","closeSequence":202,"startedSequence":203,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":204}},{"id":"run-browser-4#case-53-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-53-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-054","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/9/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/11/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-54-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/11/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-54-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-54-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-055","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/11/specs/0/tests/0/results/0/duration","valueSha256":"14b0e1af139dd6e7fec28dc099e0544be86f5a9e8a0712a3e2cd3d5a4479d6ba","matched":true,"value":9284},{"id":"run-browser-4#case-54-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/quality/checkpoints","valueSha256":"b695ef0674203f085c4af268af821275e86ff06cf18086f194c1a606e3785147","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":85},{"id":"journey-completion","passed":true,"assertions":23}]},{"id":"run-browser-4#case-54-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-54-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-54-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/records/0/id","valueSha256":"510bc7815b66c1ab4975bc5d48f7281d2157ee41cc8c8c41fe3eeeaa0cc8dbdd","matched":true,"value":"wodup-import-wodup-import-batch-recovery"},{"id":"run-browser-4#case-54-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"ed3912052e4734f1bb56f5003acab0136d4022644b9af9957b0a5401aa1fa282","matched":true,"value":"wodup_import_batch"},{"id":"run-browser-4#case-54-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-54-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-54-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-055","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/quality/checkpoints","valueSha256":"b695ef0674203f085c4af268af821275e86ff06cf18086f194c1a606e3785147","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":85},{"id":"journey-completion","passed":true,"assertions":23}]},{"id":"run-browser-4#case-54-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/completion","valueSha256":"3f124da91ffcecfd35236c96b5920c1de138de965851d2ec0283ad587666285d","matched":true,"value":{"caseId":"CASE-055","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"postgresql-readback":1,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"wodup-import-wodup-import-batch-recovery","repetition":1,"operationName":"wodup_import_batch","diagnosticKey":"rpc_failure","clientEventId":"594009ec-a195-443d-a20e-998d2212a03f","operationId":"","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-54-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/quality/controls","valueSha256":"385d5b920c61a7527fc9d8ad573192f8af61e8ba692b8a06e7feb16d7dd96593","matched":true,"value":[{"id":"case055-purpose-control","description":"중복 혼합 batch 실패가 기존 운동 일부를 바꾸는 원자성 결함","boundary":"http-response","status":"passed","expected":{"session":{"id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","user_id":"174f248d-5945-4c6e-a723-90893f5bcd96","date":"2026-08-20","title":"CASE055 first mtuj1wgs-31e185","status":"completed","source":"wodup","source_ref":"550001","server_revision":2},"parts":[{"id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","session_id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","session_exercise_id":"7606fd2d-6ebd-4b98-ae4b-b5a3311ef32a","exercise_id":"04a94ef7-e70b-5730-8e1a-debd582182ac","entry_kind":"exercise","position":1}],"sets":[{"id":"39e51da0-6d32-4f8c-b841-0dc62420b049","session_exercise_part_id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","load":62.5,"reps":7,"position":1,"set_result":"completed"}]},"comparator":{"kind":"deepEqual"},"normalActual":{"session":{"id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","user_id":"174f248d-5945-4c6e-a723-90893f5bcd96","date":"2026-08-20","title":"CASE055 first mtuj1wgs-31e185","status":"completed","source":"wodup","source_ref":"550001","server_revision":2},"parts":[{"id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","session_id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","session_exercise_id":"7606fd2d-6ebd-4b98-ae4b-b5a3311ef32a","exercise_id":"04a94ef7-e70b-5730-8e1a-debd582182ac","entry_kind":"exercise","position":1}],"sets":[{"id":"39e51da0-6d32-4f8c-b841-0dc62420b049","session_exercise_part_id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","load":62.5,"reps":7,"position":1,"set_result":"completed"}]},"normal":{"matched":true},"negativeActual":{"session":{"id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","user_id":"174f248d-5945-4c6e-a723-90893f5bcd96","date":"2026-08-20","title":"CASE055 first mtuj1wgs-31e185","status":"completed","source":"wodup","source_ref":"550001","server_revision":2},"parts":[{"id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","session_id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","session_exercise_id":"7606fd2d-6ebd-4b98-ae4b-b5a3311ef32a","exercise_id":"04a94ef7-e70b-5730-8e1a-debd582182ac","entry_kind":"exercise","position":1}],"sets":[{"id":"39e51da0-6d32-4f8c-b841-0dc62420b049","session_exercise_part_id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","load":63.5,"reps":7,"position":1,"set_result":"completed"}]},"negative":{"matched":false,"applied":{"count":1,"method":"GET","path":"/rest/v1/exercise_set_part"}},"restoredActual":{"session":{"id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","user_id":"174f248d-5945-4c6e-a723-90893f5bcd96","date":"2026-08-20","title":"CASE055 first mtuj1wgs-31e185","status":"completed","source":"wodup","source_ref":"550001","server_revision":2},"parts":[{"id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","session_id":"a625d010-7c56-484c-ab40-bc5b7b0c0694","session_exercise_id":"7606fd2d-6ebd-4b98-ae4b-b5a3311ef32a","exercise_id":"04a94ef7-e70b-5730-8e1a-debd582182ac","entry_kind":"exercise","position":1}],"sets":[{"id":"39e51da0-6d32-4f8c-b841-0dc62420b049","session_exercise_part_id":"bd4ad1a2-8628-4e52-b1b2-2309068ad198","load":62.5,"reps":7,"position":1,"set_result":"completed"}]},"restored":{"matched":true},"durationMs":32}]},{"id":"run-browser-4#case-54-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-54-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/quality/cleanup/resources","valueSha256":"4a3ef23bc08e8268625fd6dee8be52890a6901f02fea575e1a4755d86ce50492","matched":true,"value":[{"id":"case055-primary-actor","status":"passed","settled":true,"durationMs":481},{"id":"case055-provider-mapping","status":"passed","settled":true,"durationMs":17},{"id":"case055-provider-catalog","status":"passed","settled":true,"durationMs":18},{"id":"control-case055-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":82}]},{"id":"run-browser-4#case-54-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-54-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-54-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-54-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-54-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-54-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-54-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-54-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-54-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/startedAt","valueSha256":"fc4bb3aa57052869f236038ab8db9b11b5baed969884a196a65d5fe6a26ebaca","matched":true,"value":"2026-09-09T20:04:44.572Z"},{"id":"run-browser-4#case-54-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/finishedAt","valueSha256":"6917c40ccae6bfe0f2636954b3457c5a5e7cbabdab0ad8dad20a6dbb38867e2c","matched":true,"value":"2026-09-09T20:04:53.778Z"},{"id":"run-browser-4#case-54-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-54-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-54-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-54-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/pages/0/pageClosed","valueSha256":"b1e520832c4fc28d1c9b50338863eea2a6a5de47fbefa639271567fb94102829","matched":true,"value":{"sequence":230,"pendingRequestIds":[]}},{"id":"run-browser-4#case-54-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/pages/0/routeCleanup","valueSha256":"128c538e383373ed99a9506d819481c7b590db161c1d013d01525a2b511add6f","matched":true,"value":[{"startedSequence":228,"status":"completed","completedSequence":229}]},{"id":"run-browser-4#case-54-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/pages/0/observerDisposal","valueSha256":"de5467debd7896cc2aa25b3fdd6b43c7dcf25d1097f4e8f23f9d523368c1c9a4","matched":true,"value":{"status":"completed","closeSequence":230,"startedSequence":231,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":232}},{"id":"run-browser-4#case-54-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-54-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/10/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-057","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/12/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-56-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-057","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/12/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-56-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-057","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-56-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-057","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/12/specs/0/tests/0/results/0/duration","valueSha256":"3133386077078a7f8a06d14cc0c86564734b7fd776674439b4f4ec144a0383ad","matched":true,"value":7466},{"id":"run-browser-4#case-56-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-057","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/checkpoints","valueSha256":"2044c4a202baea2655ee3dffde72f9c4c984999a93b66b37783ac58cd98e2b0f","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":42},{"id":"journey-completion","passed":true,"assertions":27}]},{"id":"run-browser-4#case-56-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-057","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-057","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-057","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-057","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-fault-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/id","valueSha256":"7fcf21d892b49390d476f33be6b788898a880cac3d2b823a6e7f97fa1a1423e1","matched":true,"value":"declared-get-400-1"},{"id":"run-browser-4#case-56-fault-0-method","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/method","valueSha256":"04f32a7e5ddf67e84607f422420197492e7642de7f13d4ce9589c1b0a4683c3a","matched":true,"value":"GET"},{"id":"run-browser-4#case-56-fault-0-path","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/path","valueSha256":"cd58bccb2f1fbf44161bb6133975a6b3ad79d3d67614256876b0fb3270c37b32","matched":true,"value":"/rest/v1/exercise_archetypes?select=id%2Cname_ko%2Cname_en%2Cprimary_part%2Cpattern%2Crep_exercise_id%2Cis_active%2Csort_order%2Ccreated_at%2Cupdated_at&is_active=eq.true&order=sort_order.asc%2Cname_ko.asc"},{"id":"run-browser-4#case-56-fault-0-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/status","valueSha256":"26d228663f13a88592a12d16cf9587caab0388b262d6d9f126ed62f9333aca94","matched":true,"value":400},{"id":"run-browser-4#case-56-fault-0-requestCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/requestCount","valueSha256":"e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683","matched":true,"value":6},{"id":"run-browser-4#case-56-fault-0-requiredAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/requiredAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-56-fault-0-observedAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/observedAttempts","valueSha256":"080a9ed428559ef602668b4c00f114f1a11c3f6b02a435f0bdc154578e4d7f22","matched":true,"value":[1]},{"id":"run-browser-4#case-56-fault-0-missingAttempts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/missingAttempts","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-fault-0-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"선언한 실제 요청/상태/횟수와 해당 시도의 관측. 단순 route 등록 증거가 아님.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/expectedFaultEvidence/faults/0/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/expectedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-56-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/observedCount","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"run-browser-4#case-56-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/0/id","valueSha256":"d083be512a929069e5e36dec98773d8ef734977a0a13cf7426f889af6084a388","matched":true,"value":"export-http-failure"},{"id":"run-browser-4#case-56-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b351dd8f8b56d98a8fcc65e5a566104008d8e6fd884958c9d82e2a3fb688bcf1","matched":true,"value":"rest:exercise_archetypes"},{"id":"run-browser-4#case-56-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-56-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-56-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/1/id","valueSha256":"7130e17ce5751f5b30cd6e2bfa496fffea83aafd5701ae908bbc8cbd26f22706","matched":true,"value":"data-export-export-current-user-data-recovery"},{"id":"run-browser-4#case-56-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"efcd0f7a1937c767234fe0849349518ee4a60e3af018f3285637ed392895156c","matched":true,"value":"export_current_user_data"},{"id":"run-browser-4#case-56-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-56-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-56-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-057","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/checkpoints","valueSha256":"2044c4a202baea2655ee3dffde72f9c4c984999a93b66b37783ac58cd98e2b0f","matched":true,"value":[{"id":"feature-round-trip","passed":true,"assertions":42},{"id":"journey-completion","passed":true,"assertions":27}]},{"id":"run-browser-4#case-56-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-057","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/completion","valueSha256":"2fd73f0aa6fc3ccff3a6f2ee0be6d4b9f6bcdbb788b2eb3613527b8b22844496","matched":true,"value":{"caseId":"CASE-057","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":1,"postgresql-readback":1,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"expectedFaultEvidence":{"mode":"manifest-exact-method-path-status-attempt-window","faults":[{"id":"declared-get-400-1","origin":"supabase","method":"GET","path":"/rest/v1/exercise_archetypes?select=id%2Cname_ko%2Cname_en%2Cprimary_part%2Cpattern%2Crep_exercise_id%2Cis_active%2Csort_order%2Ccreated_at%2Cupdated_at&is_active=eq.true&order=sort_order.asc%2Cname_ko.asc","status":400,"failureText":null,"attemptWindow":{"first":1,"last":1},"requestCount":6,"requiredAttempts":[1],"observedAttempts":[1],"missingAttempts":[],"violations":[]}],"nativeConsoleAttributions":[{"consoleText":"Failed to load resource: the server responded with a status of 400 (Bad Request)","id":"declared-get-400-1","origin":"supabase","method":"GET","path":"/rest/v1/exercise_archetypes?select=id%2Cname_ko%2Cname_en%2Cprimary_part%2Cpattern%2Crep_exercise_id%2Cis_active%2Csort_order%2Ccreated_at%2Cupdated_at&is_active=eq.true&order=sort_order.asc%2Cname_ko.asc","status":400,"failureText":"","attempt":1,"url":"http://127.0.0.1:56421/rest/v1/exercise_archetypes?[redacted]"}],"unmatchedNativeConsole":[],"missingAttempts":[],"violations":[]},"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":2,"observedCount":2,"records":[{"sequence":1,"id":"export-http-failure","repetition":1,"operationName":"rest:exercise_archetypes","diagnosticKey":"http_failure","clientEventId":"e351b219-1b8b-4fed-ac5b-5148d36b1887","operationId":"","receiptStored":true,"storedRowVerified":true},{"sequence":2,"id":"data-export-export-current-user-data-recovery","repetition":1,"operationName":"export_current_user_data","diagnosticKey":"rpc_failure","clientEventId":"20d8493a-500f-4976-b0da-633ef7f582f8","operationId":"","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-56-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-057","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls","valueSha256":"759b5f6d3b74dafab3dbda112a45f3f2514f55245919aa6796af5e4d56eaf1e0","matched":true,"value":[{"id":"case057-purpose-control","description":"다운로드 export에 다른 사용자의 기록이 섞이는 소유권 누출","boundary":"http-response","status":"passed","expected":{"allOwn":true,"foreignPresent":false},"comparator":{"kind":"deepEqual"},"normalActual":{"allOwn":true,"foreignPresent":false},"normal":{"matched":true},"negativeActual":{"allOwn":false,"foreignPresent":true},"negative":{"matched":false,"applied":{"count":1}},"restoredActual":{"allOwn":true,"foreignPresent":false},"restored":{"matched":true},"durationMs":1057}]},{"id":"run-browser-4#case-56-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-057","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls/0/normalActual","valueSha256":"7683e37a80a171d5eb5cb73775fdf655fcbaa9cc14e29f61a161c609fb9c2386","matched":true,"value":{"allOwn":true,"foreignPresent":false}},{"id":"run-browser-4#case-56-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-057","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls/0/negativeActual","valueSha256":"9b35aee76f9a5564148454f4c1559ef599c4d45a52014296f1308f56942c4ac3","matched":true,"value":{"allOwn":false,"foreignPresent":true}},{"id":"run-browser-4#case-56-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-057","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls/0/restoredActual","valueSha256":"7683e37a80a171d5eb5cb73775fdf655fcbaa9cc14e29f61a161c609fb9c2386","matched":true,"value":{"allOwn":true,"foreignPresent":false}},{"id":"run-browser-4#case-56-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-057","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-56-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-057","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-56-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-057","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-56-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-057","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-56-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-56-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/quality/cleanup/resources","valueSha256":"e31ccd0a2cfc9ba3b176b1394893dd0ae2a22c2e9d0f5951813783bfb007ad13","matched":true,"value":[{"id":"control-case057-purpose-control","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":71}]},{"id":"run-browser-4#case-56-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-56-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-56-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-56-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-56-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-56-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-56-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-56-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-56-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/startedAt","valueSha256":"975cec6ab464cc69e1a3e8f668a2b788932c5902f0295ca1eb5d9b52bdc2aab3","matched":true,"value":"2026-09-09T20:04:54.117Z"},{"id":"run-browser-4#case-56-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/finishedAt","valueSha256":"ab32a6c66bd1794ed4f73ffc53f662e6b75d3ec20f7fb773c7093d1c1f5a1b01","matched":true,"value":"2026-09-09T20:05:01.475Z"},{"id":"run-browser-4#case-56-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-56-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-56-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-057","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-56-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/pages/0/pageClosed","valueSha256":"874313e35263ef7fc3e1c9cefe7d1d77c33f5f8b78b1c8d08fe99fca5e76c2d0","matched":true,"value":{"sequence":392,"pendingRequestIds":[]}},{"id":"run-browser-4#case-56-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/pages/0/routeCleanup","valueSha256":"447bec505323193d70d7966933e622b2b0d3ba802f8f72216acbae97f4fffaa4","matched":true,"value":[{"startedSequence":390,"status":"completed","completedSequence":391}]},{"id":"run-browser-4#case-56-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/pages/0/observerDisposal","valueSha256":"43840df25a3968312de50cad357c6edffca1e21babd1c89b83d619ed577ff7aa","matched":true,"value":{"status":"completed","closeSequence":392,"startedSequence":393,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":394}},{"id":"run-browser-4#case-56-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-56-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-057","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/11/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-058","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-57-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-058","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-57-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-058","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-57-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-058","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/13/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"41adefa80327159ba20be23d357d1a7ee5c0bfd399aff792efa58ac2cf8bb349","matched":true,"value":6469},{"id":"run-browser-4#case-57-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-058","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/checkpoints","valueSha256":"20138ebd310890fe3206e69a795ad1abe345879641c2111133b7d160b3c41229","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":21},{"id":"checkpoint-2","passed":true,"assertions":22},{"id":"checkpoint-3","passed":true,"assertions":17}]},{"id":"run-browser-4#case-57-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-058","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-058","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-058","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-058","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/expectedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-57-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/observedCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-57-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/records/0/id","valueSha256":"29ffa972047dd9885e4ca694e9c64b8e12c4dc7279fedbf83a9f41cb5550dc05","matched":true,"value":"queue-storage-aborted"},{"id":"run-browser-4#case-57-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"1402015539a4d89d3bfae11c17aa7946814b91b0542a38781711a279655cdbd4","matched":true,"value":"queue_pending_workout_save"},{"id":"run-browser-4#case-57-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-57-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-57-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-058","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/checkpoints","valueSha256":"20138ebd310890fe3206e69a795ad1abe345879641c2111133b7d160b3c41229","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":21},{"id":"checkpoint-2","passed":true,"assertions":22},{"id":"checkpoint-3","passed":true,"assertions":17}]},{"id":"run-browser-4#case-57-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-058","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/completion","valueSha256":"add9924aa26e3883071c06196190ba8ed6cf3a7d8fd9daca918501580cf06eca","matched":true,"value":{"caseId":"CASE-058","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":2,"frontend-state":1,"postgresql-readback":2,"authenticated-api-rpc":1,"reload-reentry":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":1,"observedCount":1,"records":[{"sequence":1,"id":"queue-storage-aborted","repetition":1,"operationName":"queue_pending_workout_save","diagnosticKey":"resource_load_failure","clientEventId":"037a5b2a-9795-4af5-868b-147de808a1cd","operationId":"local-workout:989d9b04-0e65-4d50-88e6-ad55e25ff3c3","receiptStored":true,"storedRowVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-57-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-058","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls","valueSha256":"273803ca17ae9e0c9292101baa79399c46e9d9ab03148ef3f8a89f6239e18adc","matched":true,"value":[{"id":"case058-purpose-control","description":"enqueue 실패 뒤 durable draft의 운동 입력을 지우는 보존 결함","boundary":"indexeddb","status":"passed","expected":[{"id":"x85i9tqc","name":"백스쿼트","done":true,"existingSessionExerciseId":{"type":"undefined"},"exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","synonymId":{"type":"undefined"},"pctBase":{"type":"undefined"},"pctRoundKg":{"type":"undefined"},"kind":"exercise","title":"","bwFactor":0,"loadMultiplier":1,"fields":["load","reps"],"measurementType":"weight_reps","compositeGroupKey":{"type":"undefined"},"note":"","noteSaved":false,"feel":"","manualDone":false,"trainingComplex":{"type":"undefined"},"details":[],"sets":[{"id":"xuhtqvaz","type":"main","existingExerciseSetId":{"type":"undefined"},"existingExerciseSetIds":{"type":"undefined"},"load":"60","loadLb":null,"loadPct":null,"assistKg":"","pct":null,"userLoadOverrideUnit":"kg","targetReps":"5","setResult":"completed","perceivedRpe":null,"reps":"5","durationSeconds":"","distanceMeters":"","calories":"","e1rmRepresentativeKg":null,"setScoreValue":null,"setScoreReferenceKind":null,"recentPerformed1rmKg":null,"estimatedMaxRepsLower":null,"estimatedMaxRepsRepresentative":null,"recentPerformedMaxReps":null,"movementSetScores":null,"done":true,"doneAt":1788984303651,"memo":"","rest":null,"freeRest":true,"statsLoad":null,"statsEffectiveLoad":null,"e1rmLowerKg":null,"e1rmUpperKg":null,"e1rmConfidence":null,"e1rmEstimateKind":null,"e1rmPolicyId":null,"e1rmPolicyVersion":null,"e1rmCurveId":null,"e1rmCurveVersion":null,"referenceE1rmKg":null,"setIntensityPercent":null,"measured1RmBeforeKg":null,"measured1RmPercent":null,"stimulusClass":null,"maxRepObservedFloorReps":null,"estimatedMaxRepsUpper":null,"estimatedMaxRepsConfidence":null,"estimatedMaxRepsKind":null,"maxRepPolicyId":null,"maxRepPolicyVersion":null,"maxRepBodyWeightKg":null,"maxRepBodyweightFactor":null,"estimated1RM":null,"estimated1Rm":null,"strengthProjectionPending":true,"failed":false,"failReps":null}]}],"comparator":{"kind":"deepEqual"},"normalActual":[{"id":"x85i9tqc","name":"백스쿼트","done":true,"existingSessionExerciseId":{"type":"undefined"},"exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","synonymId":{"type":"undefined"},"pctBase":{"type":"undefined"},"pctRoundKg":{"type":"undefined"},"kind":"exercise","title":"","bwFactor":0,"loadMultiplier":1,"fields":["load","reps"],"measurementType":"weight_reps","compositeGroupKey":{"type":"undefined"},"note":"","noteSaved":false,"feel":"","manualDone":false,"trainingComplex":{"type":"undefined"},"details":[],"sets":[{"id":"xuhtqvaz","type":"main","existingExerciseSetId":{"type":"undefined"},"existingExerciseSetIds":{"type":"undefined"},"load":"60","loadLb":null,"loadPct":null,"assistKg":"","pct":null,"userLoadOverrideUnit":"kg","targetReps":"5","setResult":"completed","perceivedRpe":null,"reps":"5","durationSeconds":"","distanceMeters":"","calories":"","e1rmRepresentativeKg":null,"setScoreValue":null,"setScoreReferenceKind":null,"recentPerformed1rmKg":null,"estimatedMaxRepsLower":null,"estimatedMaxRepsRepresentative":null,"recentPerformedMaxReps":null,"movementSetScores":null,"done":true,"doneAt":1788984303651,"memo":"","rest":null,"freeRest":true,"statsLoad":null,"statsEffectiveLoad":null,"e1rmLowerKg":null,"e1rmUpperKg":null,"e1rmConfidence":null,"e1rmEstimateKind":null,"e1rmPolicyId":null,"e1rmPolicyVersion":null,"e1rmCurveId":null,"e1rmCurveVersion":null,"referenceE1rmKg":null,"setIntensityPercent":null,"measured1RmBeforeKg":null,"measured1RmPercent":null,"stimulusClass":null,"maxRepObservedFloorReps":null,"estimatedMaxRepsUpper":null,"estimatedMaxRepsConfidence":null,"estimatedMaxRepsKind":null,"maxRepPolicyId":null,"maxRepPolicyVersion":null,"maxRepBodyWeightKg":null,"maxRepBodyweightFactor":null,"estimated1RM":null,"estimated1Rm":null,"strengthProjectionPending":true,"failed":false,"failReps":null}]}],"normal":{"matched":true},"negativeActual":[],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":[{"id":"x85i9tqc","name":"백스쿼트","done":true,"existingSessionExerciseId":{"type":"undefined"},"exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","synonymId":{"type":"undefined"},"pctBase":{"type":"undefined"},"pctRoundKg":{"type":"undefined"},"kind":"exercise","title":"","bwFactor":0,"loadMultiplier":1,"fields":["load","reps"],"measurementType":"weight_reps","compositeGroupKey":{"type":"undefined"},"note":"","noteSaved":false,"feel":"","manualDone":false,"trainingComplex":{"type":"undefined"},"details":[],"sets":[{"id":"xuhtqvaz","type":"main","existingExerciseSetId":{"type":"undefined"},"existingExerciseSetIds":{"type":"undefined"},"load":"60","loadLb":null,"loadPct":null,"assistKg":"","pct":null,"userLoadOverrideUnit":"kg","targetReps":"5","setResult":"completed","perceivedRpe":null,"reps":"5","durationSeconds":"","distanceMeters":"","calories":"","e1rmRepresentativeKg":null,"setScoreValue":null,"setScoreReferenceKind":null,"recentPerformed1rmKg":null,"estimatedMaxRepsLower":null,"estimatedMaxRepsRepresentative":null,"recentPerformedMaxReps":null,"movementSetScores":null,"done":true,"doneAt":1788984303651,"memo":"","rest":null,"freeRest":true,"statsLoad":null,"statsEffectiveLoad":null,"e1rmLowerKg":null,"e1rmUpperKg":null,"e1rmConfidence":null,"e1rmEstimateKind":null,"e1rmPolicyId":null,"e1rmPolicyVersion":null,"e1rmCurveId":null,"e1rmCurveVersion":null,"referenceE1rmKg":null,"setIntensityPercent":null,"measured1RmBeforeKg":null,"measured1RmPercent":null,"stimulusClass":null,"maxRepObservedFloorReps":null,"estimatedMaxRepsUpper":null,"estimatedMaxRepsConfidence":null,"estimatedMaxRepsKind":null,"maxRepPolicyId":null,"maxRepPolicyVersion":null,"maxRepBodyWeightKg":null,"maxRepBodyweightFactor":null,"estimated1RM":null,"estimated1Rm":null,"strengthProjectionPending":true,"failed":false,"failReps":null}]}],"restored":{"matched":true},"durationMs":22}]},{"id":"run-browser-4#case-57-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-058","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls/0/normalActual","valueSha256":"aae980f9f39062a0a0570794ff432fa85b5e1cfa288e4d34e71a62a64b9a8236","matched":true,"value":[{"id":"x85i9tqc","name":"백스쿼트","done":true,"existingSessionExerciseId":{"type":"undefined"},"exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","synonymId":{"type":"undefined"},"pctBase":{"type":"undefined"},"pctRoundKg":{"type":"undefined"},"kind":"exercise","title":"","bwFactor":0,"loadMultiplier":1,"fields":["load","reps"],"measurementType":"weight_reps","compositeGroupKey":{"type":"undefined"},"note":"","noteSaved":false,"feel":"","manualDone":false,"trainingComplex":{"type":"undefined"},"details":[],"sets":[{"id":"xuhtqvaz","type":"main","existingExerciseSetId":{"type":"undefined"},"existingExerciseSetIds":{"type":"undefined"},"load":"60","loadLb":null,"loadPct":null,"assistKg":"","pct":null,"userLoadOverrideUnit":"kg","targetReps":"5","setResult":"completed","perceivedRpe":null,"reps":"5","durationSeconds":"","distanceMeters":"","calories":"","e1rmRepresentativeKg":null,"setScoreValue":null,"setScoreReferenceKind":null,"recentPerformed1rmKg":null,"estimatedMaxRepsLower":null,"estimatedMaxRepsRepresentative":null,"recentPerformedMaxReps":null,"movementSetScores":null,"done":true,"doneAt":1788984303651,"memo":"","rest":null,"freeRest":true,"statsLoad":null,"statsEffectiveLoad":null,"e1rmLowerKg":null,"e1rmUpperKg":null,"e1rmConfidence":null,"e1rmEstimateKind":null,"e1rmPolicyId":null,"e1rmPolicyVersion":null,"e1rmCurveId":null,"e1rmCurveVersion":null,"referenceE1rmKg":null,"setIntensityPercent":null,"measured1RmBeforeKg":null,"measured1RmPercent":null,"stimulusClass":null,"maxRepObservedFloorReps":null,"estimatedMaxRepsUpper":null,"estimatedMaxRepsConfidence":null,"estimatedMaxRepsKind":null,"maxRepPolicyId":null,"maxRepPolicyVersion":null,"maxRepBodyWeightKg":null,"maxRepBodyweightFactor":null,"estimated1RM":null,"estimated1Rm":null,"strengthProjectionPending":true,"failed":false,"failReps":null}]}]},{"id":"run-browser-4#case-57-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-058","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls/0/negativeActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-57-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-058","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls/0/restoredActual","valueSha256":"aae980f9f39062a0a0570794ff432fa85b5e1cfa288e4d34e71a62a64b9a8236","matched":true,"value":[{"id":"x85i9tqc","name":"백스쿼트","done":true,"existingSessionExerciseId":{"type":"undefined"},"exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","synonymId":{"type":"undefined"},"pctBase":{"type":"undefined"},"pctRoundKg":{"type":"undefined"},"kind":"exercise","title":"","bwFactor":0,"loadMultiplier":1,"fields":["load","reps"],"measurementType":"weight_reps","compositeGroupKey":{"type":"undefined"},"note":"","noteSaved":false,"feel":"","manualDone":false,"trainingComplex":{"type":"undefined"},"details":[],"sets":[{"id":"xuhtqvaz","type":"main","existingExerciseSetId":{"type":"undefined"},"existingExerciseSetIds":{"type":"undefined"},"load":"60","loadLb":null,"loadPct":null,"assistKg":"","pct":null,"userLoadOverrideUnit":"kg","targetReps":"5","setResult":"completed","perceivedRpe":null,"reps":"5","durationSeconds":"","distanceMeters":"","calories":"","e1rmRepresentativeKg":null,"setScoreValue":null,"setScoreReferenceKind":null,"recentPerformed1rmKg":null,"estimatedMaxRepsLower":null,"estimatedMaxRepsRepresentative":null,"recentPerformedMaxReps":null,"movementSetScores":null,"done":true,"doneAt":1788984303651,"memo":"","rest":null,"freeRest":true,"statsLoad":null,"statsEffectiveLoad":null,"e1rmLowerKg":null,"e1rmUpperKg":null,"e1rmConfidence":null,"e1rmEstimateKind":null,"e1rmPolicyId":null,"e1rmPolicyVersion":null,"e1rmCurveId":null,"e1rmCurveVersion":null,"referenceE1rmKg":null,"setIntensityPercent":null,"measured1RmBeforeKg":null,"measured1RmPercent":null,"stimulusClass":null,"maxRepObservedFloorReps":null,"estimatedMaxRepsUpper":null,"estimatedMaxRepsConfidence":null,"estimatedMaxRepsKind":null,"maxRepPolicyId":null,"maxRepPolicyVersion":null,"maxRepBodyWeightKg":null,"maxRepBodyweightFactor":null,"estimated1RM":null,"estimated1Rm":null,"strengthProjectionPending":true,"failed":false,"failReps":null}]}]},{"id":"run-browser-4#case-57-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-058","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-57-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-058","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-57-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-058","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-57-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-058","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-57-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-57-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/quality/cleanup/resources","valueSha256":"22175e374f74490780e77121ff143429ef3939f26560855e5c86785bf7b1711f","matched":true,"value":[{"id":"control-case058-purpose-control","status":"passed","settled":true,"durationMs":7},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":66}]},{"id":"run-browser-4#case-57-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/ownedPageListeners","valueSha256":"e216d83b9d458762bb7fa66181921a07cc7fcfe77681abc533470e2701ebe1bc","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-57-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-57-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-57-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-57-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-57-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-57-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-57-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-57-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/startedAt","valueSha256":"c5909273a8c15aa8cb892f2bb65b4a91b2a8f2944c87334a515f0e6a1ccf0d73","matched":true,"value":"2026-09-09T20:05:01.728Z"},{"id":"run-browser-4#case-57-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/finishedAt","valueSha256":"71cec24fd7bfc6783ea65282854963c519eac295350696c57812faff571dedbc","matched":true,"value":"2026-09-09T20:05:08.112Z"},{"id":"run-browser-4#case-57-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-57-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-57-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-058","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-57-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/pages/0/pageClosed","valueSha256":"4ae577362fee01770c15bd806e2c22a79fe356a3c58db14bf73fc7f5ee210596","matched":true,"value":{"sequence":174,"pendingRequestIds":["56"]}},{"id":"run-browser-4#case-57-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/pages/0/routeCleanup","valueSha256":"a9e72e03b9ce6ca46de726d94ec5bf923b66e1f2695a149cbb859f21541f3207","matched":true,"value":[{"startedSequence":168,"status":"completed","completedSequence":169}]},{"id":"run-browser-4#case-57-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/pages/0/observerDisposal","valueSha256":"1ba6bfe937ab984c1d91f843b9048e944411e4586231447ce50a76fce36cb20e","matched":true,"value":{"status":"completed","closeSequence":174,"startedSequence":175,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":176}},{"id":"run-browser-4#case-57-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/pages/0/currentPending","valueSha256":"776e7e383d2fc118dcdc7361f094dddd5f307998c46120ec57b3c27977346c79","matched":true,"value":["56"]},{"id":"run-browser-4#case-57-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-058","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/12/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-048","explanation":"실제 Playwright 첫 결과 status. 이것만으로 기준 승격하지 않음.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-47-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-048","explanation":"실제 native retry=0.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-47-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-048","explanation":"통합 품질 reporter의 CASE 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-47-native-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"CASE-048","explanation":"준비·본문을 포함하는 native 전체 duration 상한. 60초 이내면 그보다 작은 본문 구간도 이내임.","artifact":"native","path":"browser-4/error-cases.json","artifactSha256":"30c49505760b9bab869443d89d222e2d665bcc1bb739a0cbdab51ce8d74e7dfd","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/duration","valueSha256":"0ab4360647fe97924dd026006e6023661cdc1255f5d268c678d72ba0cc022160","matched":true,"value":11454},{"id":"run-browser-4#case-47-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-048","explanation":"필수 checkpoint ID, 실제 passed 및 assertion 수. 의미는 해당 source 계약과 대조해야 함.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/checkpoints","valueSha256":"1bf80363cc551042e5c08172044c6b79e3910651beb4466bffd52952d41e51b6","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":20},{"id":"checkpoint-2","passed":true,"assertions":12},{"id":"checkpoint-3","passed":true,"assertions":36},{"id":"checkpoint-4","passed":true,"assertions":19}]},{"id":"run-browser-4#case-47-quality-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-048","explanation":"누락·실패·미완료 단언에 대한 실제 reporter 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-diagnostic-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-048","explanation":"진단 identity/완료 집계 오류 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnosticErrors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-missing-signals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-048","explanation":"필수 여정 신호의 누락 목록.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/missingSignals","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-unexpected-browser-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-048","explanation":"실제 관찰된 예상 밖 브라우저·네트워크 오류.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/browserAndNetworkFailures","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-required-event-expectedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/expectedCount","valueSha256":"e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683","matched":true,"value":6},{"id":"run-browser-4#case-47-required-event-observedCount","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/observedCount","valueSha256":"e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683","matched":true,"value":6},{"id":"run-browser-4#case-47-required-event-missing","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/missing","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-required-event-violations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"예상한 앱 오류 보고/복구 사건의 실제 수신·저장 계약.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/violations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-required-event-0-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/0/id","valueSha256":"d4b1f91ba24ab1d069d703a58d8486ab596785093c9860dfd2b3144106fd0b78","matched":true,"value":"offline-profile-feed"},{"id":"run-browser-4#case-47-required-event-0-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/0/operationName","valueSha256":"b749068945e2f4a338e3b574a41cee1181f8215dd4169e9ce948ac801159f642","matched":true,"value":"get_profile_feed"},{"id":"run-browser-4#case-47-required-event-0-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/0/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-0-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/0/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-1-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/1/id","valueSha256":"e8550a5a5c0220ccef515d845adc64f4e17d695b29a62c6f3c78af71113dca65","matched":true,"value":"offline-profile-reads"},{"id":"run-browser-4#case-47-required-event-1-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/1/operationName","valueSha256":"053860bd2b48ad263ea355a3335fe5f0f4ae0ff1a8cf07a5b366aefb447724f1","matched":true,"value":"rest:profiles"},{"id":"run-browser-4#case-47-required-event-1-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/1/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-1-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/1/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-2-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/2/id","valueSha256":"e8550a5a5c0220ccef515d845adc64f4e17d695b29a62c6f3c78af71113dca65","matched":true,"value":"offline-profile-reads"},{"id":"run-browser-4#case-47-required-event-2-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/2/operationName","valueSha256":"053860bd2b48ad263ea355a3335fe5f0f4ae0ff1a8cf07a5b366aefb447724f1","matched":true,"value":"rest:profiles"},{"id":"run-browser-4#case-47-required-event-2-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/2/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-2-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/2/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-3-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/3/id","valueSha256":"d2759d844a31cf784d0e955ba7aa8e1022a6795e2a25dcfe0c08bd5d1d694ec6","matched":true,"value":"offline-favorites"},{"id":"run-browser-4#case-47-required-event-3-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/3/operationName","valueSha256":"57aea445b2b1873f8a9bb5bc40671fc3eeb8c3b719307bd8160a56c33308c7a7","matched":true,"value":"get_user_exercise_favorites"},{"id":"run-browser-4#case-47-required-event-3-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/3/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-3-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/3/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-4-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/4/id","valueSha256":"7d91a364632a132f85b6e4acc1d1b717f1523433320d3b23068fa83ec9fbb276","matched":true,"value":"connectivity-entered-network"},{"id":"run-browser-4#case-47-required-event-4-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/4/operationName","valueSha256":"b83f5fdab69a55ae06b1d97647f2ad1b2165d31ad632a2c55059dbe27186d29c","matched":true,"value":"connectivity-entered"},{"id":"run-browser-4#case-47-required-event-4-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/4/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-4-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/4/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-5-id","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/5/id","valueSha256":"da900ba080d01ef32b76ff1c295f0083325f0f7af891385e5224823dec4677db","matched":true,"value":"connectivity-exited-network"},{"id":"run-browser-4#case-47-required-event-5-operationName","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/5/operationName","valueSha256":"0f6da58b2c9ce464247cc70c2d9feae2e3b2da4a22701db6c3f391ea7ccee267","matched":true,"value":"connectivity-exited"},{"id":"run-browser-4#case-47-required-event-5-receiptStored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/5/receiptStored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-required-event-5-storedRowVerified","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"해당 기대 사건의 실제 receipt 및 DB readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion/requiredObservationEvidence/records/5/storedRowVerified","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-goal-checkpoints","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"CASE-048","explanation":"각 CASE 소스의 상황 발생 단언이 포함된 필수 checkpoint 실제 완료. callback 등록이나 단언 개수만의 증거가 아니며 소스 의미와 연결한다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/checkpoints","valueSha256":"1bf80363cc551042e5c08172044c6b79e3910651beb4466bffd52952d41e51b6","matched":true,"value":[{"id":"checkpoint-1","passed":true,"assertions":20},{"id":"checkpoint-2","passed":true,"assertions":12},{"id":"checkpoint-3","passed":true,"assertions":36},{"id":"checkpoint-4","passed":true,"assertions":19}]},{"id":"run-browser-4#case-47-rpc-observers","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"정리 뒤 RPC 요청별 settled와 소유 observer disposed 실제 readback.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/rpcObservers","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-complete-goals","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-048","explanation":"동일 여정의 필수 완료/DB readback 신호 및 선언된 오류 관측.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/completion","valueSha256":"6ad240111826ebd764ddb35b28d4ff43b2843d16526e1a16d1a54655d74cc4c3","matched":true,"value":{"caseId":"CASE-048","contract":"all-checkpoints-and-full-round-trip","requiredSignals":["rendered-user-journey","frontend-state","authenticated-api-rpc","postgresql-readback","reload-reentry","unexpected-error-free","cleanup-readback"],"observedSignals":{"rendered-user-journey":1,"frontend-state":2,"postgresql-readback":2,"reload-reentry":2,"authenticated-api-rpc":1,"unexpected-error-free":1,"cleanup-readback":1},"missingSignals":[],"requiredObservationEvidence":{"mode":"manifest-exact-recovery-lifecycle","owner":"case-context-user","expectedCount":6,"observedCount":6,"records":[{"sequence":1,"id":"offline-profile-feed","repetition":1,"operationName":"get_profile_feed","diagnosticKey":"screen_rpc_failed","clientEventId":"31ae3f2c-9a7b-4ab5-8529-3a46b12f88d7","operationId":"rpc:get_profile_feed:fa87e09a-10e6-4650-856a-b4b2198ab25d","receiptStored":true,"storedRowVerified":true,"receiptReplayed":true,"fullStoredPayloadVerified":true,"offlineFailures":6,"offlineRetries":6},{"sequence":2,"id":"offline-profile-reads","repetition":1,"operationName":"rest:profiles","diagnosticKey":"network_failure","clientEventId":"497d85f0-8453-48ea-ace2-2a76e4efe94d","operationId":"","receiptStored":true,"storedRowVerified":true,"receiptReplayed":false,"fullStoredPayloadVerified":true},{"sequence":3,"id":"offline-profile-reads","repetition":2,"operationName":"rest:profiles","diagnosticKey":"network_failure","clientEventId":"e1d363e0-76c0-411c-b023-2ee158d6931a","operationId":"","receiptStored":true,"storedRowVerified":true,"receiptReplayed":false,"fullStoredPayloadVerified":true},{"sequence":4,"id":"offline-favorites","repetition":1,"operationName":"get_user_exercise_favorites","diagnosticKey":"screen_rpc_failed","clientEventId":"ddaafd68-5789-495f-9051-eab3e6fa6155","operationId":"rpc:get_user_exercise_favorites:d49069b9-7342-4845-941c-9364ec7d2d11","receiptStored":true,"storedRowVerified":true,"receiptReplayed":false,"fullStoredPayloadVerified":true},{"sequence":5,"id":"connectivity-entered-network","repetition":1,"operationName":"connectivity-entered","diagnosticKey":"connectivity:entered:network","clientEventId":"23c0151c-5591-4db4-9770-13abd7836cdf","operationId":"tab:6396582d-e461-4179-82b3-42027ac39278:1:1:probe-succeeded","receiptStored":true,"storedRowVerified":true,"receiptReplayed":false,"fullStoredPayloadVerified":true},{"sequence":6,"id":"connectivity-exited-network","repetition":1,"operationName":"connectivity-exited","diagnosticKey":"connectivity:exited:network","clientEventId":"187bd745-773e-47cf-8651-41f3ad7f3832","operationId":"tab:6396582d-e461-4179-82b3-42027ac39278:1:3:rehydrate-succeeded","receiptStored":true,"storedRowVerified":true,"receiptReplayed":false,"fullStoredPayloadVerified":true}],"missing":[],"violations":[]}}},{"id":"run-browser-4#case-47-control-records","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-048","explanation":"실제 control ID·목표 기대값·정상/불일치/복원 값과 완료 상태.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls","valueSha256":"c545ce7e523cdf7c2f604b218a739e9f5d4a85b819f058ee61d9fe4b2bd0ec12","matched":true,"value":[{"id":"case048-purpose-control","description":"서비스워커 교체가 ACK 전 pending 기록을 지우는 결함","boundary":"indexeddb","status":"passed","expected":[{"clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","userId":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-048 mtuj2k4g-11f2ed","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:05","endTime":"05:05","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"7273f36f-55e4-46ee-b671-6faa8b046861","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"65bc4626-10e6-4808-8e7a-b4b9de5bfb49","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff"},"sourceRef":"local:local-workout:94bdc1be-c1e7-4fe0-8ada-bf74390190c7","clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","requestHash":"47b663bd6d5cb9ed878183af4ce8e59a6c26ed00730d3f9d470c72a66656fbb0"}}],"comparator":{"kind":"deepEqual"},"normalActual":[{"clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","userId":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-048 mtuj2k4g-11f2ed","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:05","endTime":"05:05","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"7273f36f-55e4-46ee-b671-6faa8b046861","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"65bc4626-10e6-4808-8e7a-b4b9de5bfb49","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff"},"sourceRef":"local:local-workout:94bdc1be-c1e7-4fe0-8ada-bf74390190c7","clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","requestHash":"47b663bd6d5cb9ed878183af4ce8e59a6c26ed00730d3f9d470c72a66656fbb0"}}],"normal":{"matched":true},"negativeActual":[],"negative":{"matched":false,"applied":{"count":1}},"restoredActual":[{"clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","userId":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-048 mtuj2k4g-11f2ed","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:05","endTime":"05:05","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"7273f36f-55e4-46ee-b671-6faa8b046861","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"65bc4626-10e6-4808-8e7a-b4b9de5bfb49","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff"},"sourceRef":"local:local-workout:94bdc1be-c1e7-4fe0-8ada-bf74390190c7","clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","requestHash":"47b663bd6d5cb9ed878183af4ce8e59a6c26ed00730d3f9d470c72a66656fbb0"}}],"restored":{"matched":true},"durationMs":27}]},{"id":"run-browser-4#case-47-control-0-normal-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-048","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls/0/normalActual","valueSha256":"841b6f9228e3c6c31504c523010ecc1c384b45ef930c965ffa6446af44cba98a","matched":true,"value":[{"clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","userId":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-048 mtuj2k4g-11f2ed","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:05","endTime":"05:05","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"7273f36f-55e4-46ee-b671-6faa8b046861","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"65bc4626-10e6-4808-8e7a-b4b9de5bfb49","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff"},"sourceRef":"local:local-workout:94bdc1be-c1e7-4fe0-8ada-bf74390190c7","clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","requestHash":"47b663bd6d5cb9ed878183af4ce8e59a6c26ed00730d3f9d470c72a66656fbb0"}}]},{"id":"run-browser-4#case-47-control-0-negative-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-048","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls/0/negativeActual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-control-0-restored-value","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-048","explanation":"동일 목표 reader의 실제 값. Boolean matched만으로 목적과 불일치를 대체하지 않는다.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls/0/restoredActual","valueSha256":"841b6f9228e3c6c31504c523010ecc1c384b45ef930c965ffa6446af44cba98a","matched":true,"value":[{"clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","userId":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff","kind":"save_workout","request":{"date":"2026-09-10","title":"CASE-048 mtuj2k4g-11f2ed","condition":"","note":"","preNote":"","postCondition":"","startTime":"05:05","endTime":"05:05","duration":"0분","bodyWeight":75,"sessionIntent":"training","exercises":[{"id":"7273f36f-55e4-46ee-b671-6faa8b046861","exerciseId":"eece5e29-a057-5804-873d-2c7b862a987e","name":"백스쿼트","kind":"exercise","title":"","bwFactor":0,"fields":["load","reps"],"details":[],"note":"","review":"","sets":[{"id":"65bc4626-10e6-4808-8e7a-b4b9de5bfb49","type":"main","load":60,"loadLb":null,"reps":5,"targetReps":5,"setResult":"completed","perceivedRpe":null,"done":true,"restSeconds":0,"freeRest":true,"note":"","userLoadOverrideUnit":"kg"}]}],"user":{"id":"c3fc98c1-81da-4b18-9b74-e9cd73eb02ff"},"sourceRef":"local:local-workout:94bdc1be-c1e7-4fe0-8ada-bf74390190c7","clientMutationId":"94bdc1be-c1e7-4fe0-8ada-bf74390190c7","requestHash":"47b663bd6d5cb9ed878183af4ce8e59a6c26ed00730d3f9d470c72a66656fbb0"}}]},{"id":"run-browser-4#case-47-control-0-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-048","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls/0/normal/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-control-0-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-048","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls/0/negative/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"run-browser-4#case-47-control-0-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-048","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-47-control-0-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-048","explanation":"동일 목표 reader의 실제 정상/결함/복구와 1회 적용 receipt. 목적 적절성과 공통 helper 증거는 별도 검토.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/controls/0/restored/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-cleanup-completed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"해당 CASE 실제 정리 완료 표시. 자원별 readback과 함께 사용.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/cleanup/completed","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"run-browser-4#case-47-cleanup-resources","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"소유 자원의 실제 상태·settled·소요 시간.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/quality/cleanup/resources","valueSha256":"573893b1daff048225c3ce3e6b9d5bef56814a5ec670a98661cb2a36ac2342e3","matched":true,"value":[{"id":"control-case048-purpose-control","status":"passed","settled":true,"durationMs":11},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":7}]},{"id":"run-browser-4#case-47-listener-owners","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"소유 page listener remove/readback. Page close와 Node callback 해제를 구분.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/ownedPageListeners","valueSha256":"6705652be65792fe5aec62adb228a90929ea45a32f8e5d6ca951a65b7d7becc4","matched":true,"value":[{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]},{"pageClosed":true,"disposed":true,"listeners":[{"event":"pageerror","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"crash","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"console","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"dialog","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"request","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"response","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false},{"event":"requestfailed","registered":true,"removalAttempted":true,"remainingAfterRemoval":0,"remainingOwnedListeners":0,"removalFailed":false}]}]},{"id":"run-browser-4#case-47-diagnostic-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE 첫 실패 진단 attachment 개수.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"run-browser-4#case-47-diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"run-browser-4#case-47-diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"run-browser-4#case-47-diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"run-browser-4#case-47-diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"run-browser-4#case-47-diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"run-browser-4#case-47-diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"run-browser-4#case-47-diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/startedAt","valueSha256":"7d70160fd5b686bc52511a55bc3d4ed5775501af86bb73f38b793bca00b361c1","matched":true,"value":"2026-09-09T20:05:15.233Z"},{"id":"run-browser-4#case-47-diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/finishedAt","valueSha256":"25449c28a3952c61fe93ca9337f7d991d102035dcaf00fef665c2986a6290ee0","matched":true,"value":"2026-09-09T20:05:26.675Z"},{"id":"run-browser-4#case-47-diagnostic-cleanupStage","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"run-browser-4#case-47-diagnostic-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"run-browser-4#case-47-diagnostic-sessionDate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-048","explanation":"해당 CASE에 기록된 실제 진단 identity/시각/정리 단계.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/sessionDate","valueSha256":"d54aceff0a93232f1a84e4126c70569bc0680fe831277f952b40aec39bacb300","matched":true,"value":"2026-09-10"},{"id":"run-browser-4#case-47-page-0-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/0/pageClosed","valueSha256":"74bbbccff85e3dc01731aef6d5c1dbc5056158431ccd461e210861a7b7cd3d43","matched":true,"value":{"sequence":126,"pendingRequestIds":[]}},{"id":"run-browser-4#case-47-page-0-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/0/routeCleanup","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-page-0-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/0/observerDisposal","valueSha256":"111892cc614227c6a5314333c2937b7b0b88ef84fd2e7ec2402215f1949f834e","matched":true,"value":{"status":"completed","closeSequence":126,"startedSequence":127,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":128}},{"id":"run-browser-4#case-47-page-0-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/0/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-page-0-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/0/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-page-1-pageClosed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/1/pageClosed","valueSha256":"70a85816b8b4a8a40fec0b9641d4dc5eef8a5fa449269c1ef9b2d8b075763dfc","matched":true,"value":{"sequence":221,"pendingRequestIds":[]}},{"id":"run-browser-4#case-47-page-1-routeCleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/1/routeCleanup","valueSha256":"3e58eaabd34f7c3831bb64021f39940bcc366b2571fe4a90ea7322fba5ead0f6","matched":true,"value":[{"startedSequence":219,"status":"completed","completedSequence":220}]},{"id":"run-browser-4#case-47-page-1-observerDisposal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/1/observerDisposal","valueSha256":"c0b986b63faef2a7fc6a1fdaa241d6eac088cec13d73d0f5f45d7c4c50fb8eb8","matched":true,"value":{"status":"completed","closeSequence":221,"startedSequence":222,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":223}},{"id":"run-browser-4#case-47-page-1-currentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/1/currentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"run-browser-4#case-47-page-1-previousDocumentPending","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-048","explanation":"실제 route 종료·페이지 close·observer 제거 및 문서 세대별 보존 진단. 이전 문서 pending만으로 누수라 단정하지 않음.","artifact":"quality","path":"browser-4/browser-4-of-4.e2e-evidence.json","artifactSha256":"d0efa2dab002fe4f2a7fc7e31c0d239aeb21262fe1036a5fb5c9e46df9c0c931","pointer":"/results/13/diagnostic/pages/1/previousDocumentPending","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"app-precheck-93d4cad6#run-scope","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"precheck의 static/unit/DB 범위이며 browser는 별도 run이다.","artifact":"summary","path":"summary.json","artifactSha256":"95e30827b79777c4887474436cd7ecbe73f11063d8b3eb4049861171b5c64142","pointer":"/partial","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"app-precheck-93d4cad6#stage-static","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"95e30827b79777c4887474436cd7ecbe73f11063d8b3eb4049861171b5c64142","pointer":"/results/0","valueSha256":"7fd1107e632e46db311919234ccaa37ab7d25a374f7b8db5da60cbe8ac065757","matched":true,"value":{"status":"pass","name":"static","ms":93880}},{"id":"app-precheck-93d4cad6#stage-unit-1","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"95e30827b79777c4887474436cd7ecbe73f11063d8b3eb4049861171b5c64142","pointer":"/results/1","valueSha256":"27ecf9fee55fca07f514e5d18315642b45f959f4226b89a5a5437840ec2e9d63","matched":true,"value":{"status":"pass","detail":"1691 passed / 0 failed / 15 conditional skip","failures":[],"name":"unit-1","ms":97640}},{"id":"app-precheck-93d4cad6#stage-unit-2","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"95e30827b79777c4887474436cd7ecbe73f11063d8b3eb4049861171b5c64142","pointer":"/results/2","valueSha256":"33310c3cd220df5415d4abce6a4c22c61edd67454d4b2f0b2e10a44a37f59a9b","matched":true,"value":{"status":"pass","detail":"1814 passed / 0 failed / 18 conditional skip","failures":[],"name":"unit-2","ms":164495}},{"id":"app-precheck-93d4cad6#stage-database","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"95e30827b79777c4887474436cd7ecbe73f11063d8b3eb4049861171b5c64142","pointer":"/results/3","valueSha256":"92536582a93ebd43ca41c916abf2c712243b0548df1208950d56da415dd00d52","matched":true,"value":{"status":"pass","detail":"db reset(마이그레이션 전체 적용): pass · schema.sql 스냅샷 --check: pass · pgTAP: pass 130파일/2328 assert · 동시 저장 세대·영수증: pass · 큰 이력 계산 격리·동시 CRUD·통계 수렴: pass","steps":[{"name":"db reset(마이그레이션 전체 적용)","status":"pass","ms":115433},{"name":"schema.sql 스냅샷 --check","status":"pass","detail":"","ms":29633},{"name":"pgTAP","status":"pass","detail":"130파일/2328 assert","failures":[],"ms":44982},{"name":"동시 저장 세대·영수증","status":"pass","ms":35476},{"name":"큰 이력 계산 격리·동시 CRUD·통계 수렴","status":"pass","ms":148941}],"failures":[],"name":"database","ms":462800}},{"id":"app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"*","explanation":"실제 blocked PostgreSQL backend를 관측한 뒤 취소하고 pg_stat_activity0 및 별도 연결select42로 종료/격리를 확인하는 회귀.","artifact":"database","path":"database.log","artifactSha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8","lines":{"start":1083,"end":1083},"valueSha256":"ec5cb8af6eb171cdf1a866a3f856206440365b685c0516e58857ceb5a24f8b65","matched":true,"value":"✔ CASE deadline terminates its actual blocked PostgreSQL backend while another session stays usable (1244.1814ms)"},{"id":"app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"실제 blocked PostgreSQL backend를 관측한 뒤 취소하고 pg_stat_activity0 및 별도 연결select42로 종료/격리를 확인하는 회귀.","artifact":"database","path":"database.log","artifactSha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8","lines":{"start":1083,"end":1083},"valueSha256":"ec5cb8af6eb171cdf1a866a3f856206440365b685c0516e58857ceb5a24f8b65","matched":true,"value":"✔ CASE deadline terminates its actual blocked PostgreSQL backend while another session stays usable (1244.1814ms)"},{"id":"app-precheck-93d4cad6#owner-generation-enforcement-regression","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"enforcement-regression","caseId":"*","explanation":"정확한 CASE 완료 SQL을 실제 임시관계에서 실행해 자기 버전/active만 완료 조건으로 보고 오래된·타인job을 제외하는 회귀. 원래 application table 변형은 아니다.","artifact":"database","path":"database.log","artifactSha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8","lines":{"start":1084,"end":1084},"valueSha256":"e1f15fbe54bb65cbf8706caaa16bc13ad1e7ec6caf308221de3725190e3081d9","matched":true,"value":"✔ CASE completion reads its own published generation and active work even when old and foreign jobs remain (878.7597ms)"},{"id":"app-precheck-93d4cad6#database-tests","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"필수 DB Node 검사17개를 실제 실행했고 skip0이다. 이 합계만으로 CASE 고유 목적을 판정하지 않는다.","artifact":"database","path":"database.log","artifactSha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8","lines":{"start":1103,"end":1103},"valueSha256":"97f086e8be758d9b72a5f2cbf60458d0bd7ba94e5923cd807aa2dc0e22483340","matched":true,"value":"ℹ tests 17"},{"id":"app-precheck-93d4cad6#database-pass","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"필수 DB Node 검사17개를 실제 실행했고 skip0이다. 이 합계만으로 CASE 고유 목적을 판정하지 않는다.","artifact":"database","path":"database.log","artifactSha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8","lines":{"start":1105,"end":1105},"valueSha256":"4fd3e4d4336b7bc89c2d107b5f3a00f52934eb65b7a6124d2f5a34097d5b3b3f","matched":true,"value":"ℹ pass 17"},{"id":"app-precheck-93d4cad6#database-fail","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"필수 DB Node 검사17개를 실제 실행했고 skip0이다. 이 합계만으로 CASE 고유 목적을 판정하지 않는다.","artifact":"database","path":"database.log","artifactSha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8","lines":{"start":1106,"end":1106},"valueSha256":"33ffe9cded4d0ddbebe17d499e858270b9e2795766649385eda33d81e7f2195b","matched":true,"value":"ℹ fail 0"},{"id":"app-precheck-93d4cad6#database-skipped","kind":"shared-helper","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"필수 DB Node 검사17개를 실제 실행했고 skip0이다. 이 합계만으로 CASE 고유 목적을 판정하지 않는다.","artifact":"database","path":"database.log","artifactSha256":"fc189bcc702994dfa122a1f991b08da05aac0f6898c269d47de09685fc56e2f8","lines":{"start":1108,"end":1108},"valueSha256":"8c222fcc03e459537c964ec98e7b34f8338b930e8d8918f3423d6fa74e8f126d","matched":true,"value":"ℹ skipped 0"},{"id":"app-required-78-93d4cad6#run-scope","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"browser+viewport partial 범위를 명시해 전체 CI로 확대하지 않는다.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/partial","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"app-required-78-93d4cad6#stage-journey-build","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/0","valueSha256":"bee27d4c953a6fdf07595705d4d92289de16ecd6a5fe2953cdf6564e9ea11be4","matched":true,"value":{"status":"pass","name":"journey-build","ms":1417}},{"id":"app-required-78-93d4cad6#stage-browser-1-stack","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/1","valueSha256":"f2e6031a978ce8ba3fb87838feb29c93661f27715387d7d21fe8ef5f9d19205a","matched":true,"value":{"status":"pass","name":"browser-1-stack","ms":174973}},{"id":"app-required-78-93d4cad6#stage-browser-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/2","valueSha256":"3d9abbbfbfb17ef92052007c22b4d67136d92532a4610548fbcc70e6057b6237","matched":true,"value":{"name":"browser-1","status":"pass","ms":130499,"detail":"14 passed / 0 failed / 0 skipped / 0 flaky","failures":[]}},{"id":"app-required-78-93d4cad6#stage-browser-2-stack","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/3","valueSha256":"c1e7bb0328695ea956f1c9f1e6f6fd040179fd69465b215cabd92cf3807a5875","matched":true,"value":{"status":"pass","name":"browser-2-stack","ms":176911}},{"id":"app-required-78-93d4cad6#stage-browser-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/4","valueSha256":"7a2bf314882c14a8b1a34d7ee18db8e3a2777e6aa2e56674c8542fd02cdac3f4","matched":true,"value":{"name":"browser-2","status":"pass","ms":154516,"detail":"14 passed / 0 failed / 0 skipped / 0 flaky","failures":[]}},{"id":"app-required-78-93d4cad6#stage-browser-3-stack","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/5","valueSha256":"b7ecf4f5ab1f958ea956e56aec07ab75cd6a24af49a633f57422eb0d88fbabea","matched":true,"value":{"status":"pass","name":"browser-3-stack","ms":177292}},{"id":"app-required-78-93d4cad6#stage-browser-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/6","valueSha256":"01127408b0978f4369dacb7ec55a41132e13d53fff57249fc3af7a259d2ed2d3","matched":true,"value":{"name":"browser-3","status":"pass","ms":177190,"detail":"14 passed / 0 failed / 0 skipped / 0 flaky","failures":[]}},{"id":"app-required-78-93d4cad6#stage-browser-4-stack","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/7","valueSha256":"32b0df373d4717ff4b9884dc56921883a46fd088aeef22838a98b00dddb0dbaa","matched":true,"value":{"status":"pass","name":"browser-4-stack","ms":178809}},{"id":"app-required-78-93d4cad6#stage-browser-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/8","valueSha256":"3d7b1e8f338953dad0c9d488a428b09ea18dadfd9c71768f892118fec59bc7b8","matched":true,"value":{"name":"browser-4","status":"pass","ms":179026,"detail":"14 passed / 0 failed / 0 skipped / 0 flaky","failures":[]}},{"id":"app-required-78-93d4cad6#stage-viewport-stack","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/9","valueSha256":"4ce02d8534078770caac0808e24eedc1fdd8b826fad69b94581cf256b05b8ab2","matched":true,"value":{"status":"pass","name":"viewport-stack","ms":178368}},{"id":"app-required-78-93d4cad6#stage-viewport","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/10","valueSha256":"3916bf3d5d7eaff31153ac1556634f8f60051c80d138592a95f9dfe9102a5b5d","matched":true,"value":{"name":"viewport","status":"pass","ms":151014,"detail":"22 passed / 0 failed / 0 skipped / 0 flaky","failures":[]}},{"id":"app-required-78-93d4cad6#stage-e2e-evidence","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"*","explanation":"실제로 완료한 해당 단계의 결과·범위·실패 목록.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"case038-owner-normal#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-038","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case038-owner-normal#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f","pointer":"/observations/0/expected","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case038-owner-normal#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f","pointer":"/observations/0/actual","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case038-owner-normal#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f","pointer":"/observations/0/target","valueSha256":"18d7c9c79a573f4a82dab5d743dcc4d6971f5e0cb24984d83e6b420674819225","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-038-custom-exercise-catalog-incremental-sync\\regression.spec.mjs","line":265}},{"id":"case038-owner-normal#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f","pointer":"/originalHash","valueSha256":"3cdc558f10181b8edd54cd0957912dadb80147e9ab5549250ef472bb7187bddd","matched":true,"value":"375154354b0971d16afb1deb003804540d4b6eae40eaac9fd5d4b9d6ed4739b4"},{"id":"case038-owner-normal#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case038-owner-normal#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"02f67f81462dcffcf6fa100e8f4d253d779943e96972ee8a6496afb78828330f","pointer":"/restoredHash","valueSha256":"3cdc558f10181b8edd54cd0957912dadb80147e9ab5549250ef472bb7187bddd","matched":true,"value":"375154354b0971d16afb1deb003804540d4b6eae40eaac9fd5d4b9d6ed4739b4"},{"id":"case038-owner-normal#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"dd55e04d545cc500fb3a4085fa68461dead1e7a2969be2fbd92fec5ca3514d6e","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case038-owner-normal#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"dd55e04d545cc500fb3a4085fa68461dead1e7a2969be2fbd92fec5ca3514d6e","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case038-owner-normal#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6161fd46cb57d357681d1f29ff77ad47c702bbe8db5c63e5e0656dfc4a9ce53c","pointer":"/results/0/quality/cleanup","valueSha256":"8843e4b2dc86b24b13cf4b7b331f5dbbcc1f3495c877a2a5638e6b38e9c3576a","matched":true,"value":{"caseId":"CASE-038","resources":[{"id":"control-case038-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":123}],"completed":true}},{"id":"case038-owner-normal#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6161fd46cb57d357681d1f29ff77ad47c702bbe8db5c63e5e0656dfc4a9ce53c","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case038-owner-normal#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6161fd46cb57d357681d1f29ff77ad47c702bbe8db5c63e5e0656dfc4a9ce53c","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case038-owner-normal#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6161fd46cb57d357681d1f29ff77ad47c702bbe8db5c63e5e0656dfc4a9ce53c","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case038-owner-mutant#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-038","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/observations/0/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case038-owner-mutant#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/observations/0/expected","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case038-owner-mutant#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/observations/0/actual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case038-owner-mutant#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/observations/0/target","valueSha256":"18d7c9c79a573f4a82dab5d743dcc4d6971f5e0cb24984d83e6b420674819225","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-038-custom-exercise-catalog-incremental-sync\\regression.spec.mjs","line":265}},{"id":"case038-owner-mutant#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/originalHash","valueSha256":"3cdc558f10181b8edd54cd0957912dadb80147e9ab5549250ef472bb7187bddd","matched":true,"value":"375154354b0971d16afb1deb003804540d4b6eae40eaac9fd5d4b9d6ed4739b4"},{"id":"case038-owner-mutant#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case038-owner-mutant#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/restoredHash","valueSha256":"3cdc558f10181b8edd54cd0957912dadb80147e9ab5549250ef472bb7187bddd","matched":true,"value":"375154354b0971d16afb1deb003804540d4b6eae40eaac9fd5d4b9d6ed4739b4"},{"id":"case038-owner-mutant#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"83adf9737a5aa215c49680ed0df8ced235b2e4cf10fdecc066c769b629d1f33e","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case038-owner-mutant#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"83adf9737a5aa215c49680ed0df8ced235b2e4cf10fdecc066c769b629d1f33e","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case038-owner-mutant#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"CASE-038","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"cb170077ec1f005e9dc0b4af69aa88fc353b4fe63b1f2e2bfeb5e2b825706d71","pointer":"/results/0/quality/cleanup","valueSha256":"a78c1d7bf03927c899ea1408ec677af00e2066aef25fdf4dc72f0dfee2028f37","matched":true,"value":{"caseId":"CASE-038","resources":[{"id":"observed-page-1","status":"passed","settled":true,"durationMs":222}],"completed":true}},{"id":"case038-owner-mutant#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"cb170077ec1f005e9dc0b4af69aa88fc353b4fe63b1f2e2bfeb5e2b825706d71","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case038-owner-mutant#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"cb170077ec1f005e9dc0b4af69aa88fc353b4fe63b1f2e2bfeb5e2b825706d71","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case038-owner-mutant#sql-applied","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-038","explanation":"해당 owner/batch/대상에 한정한 실제 제품 SQL 정의 변경. 응답 객체 위조나 임의 throw가 아니다.","artifact":"product","path":"product-mutant.json","artifactSha256":"7e8d7ad21d81b50338b2c2e7ed75454007ecaf9c49226590d5dc545fb26a96be","pointer":"/changedHash","valueSha256":"7928d3ccab72241a91a99efe682b3ff8e6637be1d80896e422108fb24c06a81d","matched":true,"value":"8cd87f3bb9b673446d4e2bf5b56b7e780f54d21683b61ec1449ef0df87bb9c9b"},{"id":"case038-owner-mutant#native-first-error-location","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"최초 native 예외가 정확히 기존 목표 단언에서 발생","artifact":"native","path":"native-results.json","artifactSha256":"83adf9737a5aa215c49680ed0df8ced235b2e4cf10fdecc066c769b629d1f33e","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/errors/0/location","valueSha256":"db8b1fcf5c639af45e0e950e2566b13249e77e78d61c847e568ea111c9d0bb0c","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-038-custom-exercise-catalog-incremental-sync\\regression.spec.mjs","column":88,"line":265}},{"id":"case038-owner-restored#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-038","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case038-owner-restored#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5","pointer":"/observations/0/expected","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case038-owner-restored#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5","pointer":"/observations/0/actual","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case038-owner-restored#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-038","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5","pointer":"/observations/0/target","valueSha256":"18d7c9c79a573f4a82dab5d743dcc4d6971f5e0cb24984d83e6b420674819225","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-038-custom-exercise-catalog-incremental-sync\\regression.spec.mjs","line":265}},{"id":"case038-owner-restored#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-038","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5","pointer":"/originalHash","valueSha256":"3cdc558f10181b8edd54cd0957912dadb80147e9ab5549250ef472bb7187bddd","matched":true,"value":"375154354b0971d16afb1deb003804540d4b6eae40eaac9fd5d4b9d6ed4739b4"},{"id":"case038-owner-restored#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case038-owner-restored#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"e90ac34d2add67b2cc8c32f4390a7c453f39ba7cc779bc1c2ec78ef1cc244fe5","pointer":"/restoredHash","valueSha256":"3cdc558f10181b8edd54cd0957912dadb80147e9ab5549250ef472bb7187bddd","matched":true,"value":"375154354b0971d16afb1deb003804540d4b6eae40eaac9fd5d4b9d6ed4739b4"},{"id":"case038-owner-restored#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"ee14367aea69acfc7529b0907d9023ff5070a1e0f17072b8a93ae2daccd35dbe","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case038-owner-restored#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-038","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"ee14367aea69acfc7529b0907d9023ff5070a1e0f17072b8a93ae2daccd35dbe","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case038-owner-restored#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9a2ef0c1fb197b370e965eb07bf90cedd5ab7611b7d7b62411917ef1b18efb70","pointer":"/results/0/quality/cleanup","valueSha256":"ef203d6e22c423f9cd2daa982704457dda15c6755bdf531c18dc5aecaad149ea","matched":true,"value":{"caseId":"CASE-038","resources":[{"id":"control-case038-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":77}],"completed":true}},{"id":"case038-owner-restored#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9a2ef0c1fb197b370e965eb07bf90cedd5ab7611b7d7b62411917ef1b18efb70","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case038-owner-restored#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-038","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9a2ef0c1fb197b370e965eb07bf90cedd5ab7611b7d7b62411917ef1b18efb70","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case038-owner-restored#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-038","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9a2ef0c1fb197b370e965eb07bf90cedd5ab7611b7d7b62411917ef1b18efb70","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case041-replay-normal#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-041","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case041-replay-normal#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784","pointer":"/observations/0/expected","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"case041-replay-normal#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784","pointer":"/observations/0/actual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"case041-replay-normal#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784","pointer":"/observations/0/target","valueSha256":"50f9ef7da1d8591f43a8d3d52435fdf9a50aa0e4bd34814eb2467857a588f437","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\support\\durabilityJourney.mjs","line":141}},{"id":"case041-replay-normal#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784","pointer":"/originalHash","valueSha256":"687390cefa99b051d4dc2a261ee20b2c653e9f9744383d68b82a8c2efcf7a339","matched":true,"value":"687ea9be2f3b4e457150c9476030fcbb1810cb92c4c6453af0d0ebb404140b7d"},{"id":"case041-replay-normal#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case041-replay-normal#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"fd45bbe644ddd2f7407cab87c22d121e95bc5c862fe5b863c1ee9468e00b2784","pointer":"/restoredHash","valueSha256":"687390cefa99b051d4dc2a261ee20b2c653e9f9744383d68b82a8c2efcf7a339","matched":true,"value":"687ea9be2f3b4e457150c9476030fcbb1810cb92c4c6453af0d0ebb404140b7d"},{"id":"case041-replay-normal#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"b1c9354a6d32d85d548323b382570e2e27b46f7ca931a0e3c8bfe3ab702378ec","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case041-replay-normal#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"b1c9354a6d32d85d548323b382570e2e27b46f7ca931a0e3c8bfe3ab702378ec","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case041-replay-normal#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"e3d430eb269d65f7a57d9311bd75eaa9977f65d1287ff852f52c2f5e3bb8e41c","pointer":"/results/0/quality/cleanup","valueSha256":"fee92f9149c692429acc7a757de0b20d90b1e291a3e7be526ca35cc70fbcf03e","matched":true,"value":{"caseId":"CASE-041","resources":[{"id":"control-case041-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":52}],"completed":true}},{"id":"case041-replay-normal#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"e3d430eb269d65f7a57d9311bd75eaa9977f65d1287ff852f52c2f5e3bb8e41c","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case041-replay-normal#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"e3d430eb269d65f7a57d9311bd75eaa9977f65d1287ff852f52c2f5e3bb8e41c","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case041-replay-normal#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"e3d430eb269d65f7a57d9311bd75eaa9977f65d1287ff852f52c2f5e3bb8e41c","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case041-replay-mutant#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-041","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/observations/0/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case041-replay-mutant#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/observations/0/expected","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"case041-replay-mutant#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/observations/0/actual","valueSha256":"d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35","matched":true,"value":2},{"id":"case041-replay-mutant#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/observations/0/target","valueSha256":"50f9ef7da1d8591f43a8d3d52435fdf9a50aa0e4bd34814eb2467857a588f437","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\support\\durabilityJourney.mjs","line":141}},{"id":"case041-replay-mutant#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/originalHash","valueSha256":"687390cefa99b051d4dc2a261ee20b2c653e9f9744383d68b82a8c2efcf7a339","matched":true,"value":"687ea9be2f3b4e457150c9476030fcbb1810cb92c4c6453af0d0ebb404140b7d"},{"id":"case041-replay-mutant#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case041-replay-mutant#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/restoredHash","valueSha256":"687390cefa99b051d4dc2a261ee20b2c653e9f9744383d68b82a8c2efcf7a339","matched":true,"value":"687ea9be2f3b4e457150c9476030fcbb1810cb92c4c6453af0d0ebb404140b7d"},{"id":"case041-replay-mutant#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"4fa041f425cdcd4f78307c665a1d8c50d28e78ec2a2fefd9f4d124fa7bf372a0","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case041-replay-mutant#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"4fa041f425cdcd4f78307c665a1d8c50d28e78ec2a2fefd9f4d124fa7bf372a0","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case041-replay-mutant#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"CASE-041","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"c09816d7e92421ee3270d58a2094544fd72b01bd1500ce7d2a5f0f333294d9ea","pointer":"/results/0/quality/cleanup","valueSha256":"a21634b54a91ad380e4848ad468c86467eea5a94ae6ae55e913ad302ce7e534a","matched":true,"value":{"caseId":"CASE-041","resources":[{"id":"control-case041-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":80}],"completed":true}},{"id":"case041-replay-mutant#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"c09816d7e92421ee3270d58a2094544fd72b01bd1500ce7d2a5f0f333294d9ea","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case041-replay-mutant#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"c09816d7e92421ee3270d58a2094544fd72b01bd1500ce7d2a5f0f333294d9ea","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case041-replay-mutant#sql-applied","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-041","explanation":"해당 owner/batch/대상에 한정한 실제 제품 SQL 정의 변경. 응답 객체 위조나 임의 throw가 아니다.","artifact":"product","path":"product-mutant.json","artifactSha256":"1d98619c1c5c9d0b91f71fc60af38a0ec51db9707c281871ad019ee7f3d42b51","pointer":"/changedHash","valueSha256":"3901befbfb16ed91272aee8f0d2e0da9ba957c017e51ecb1a66bb14ca23873ab","matched":true,"value":"b82975543d14d7dc2312ad38f44012e7d986cfad3cacd02b0d81f54c9af18baf"},{"id":"case041-replay-mutant#native-first-error-location","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"최초 native 예외가 정확히 기존 목표 단언에서 발생","artifact":"native","path":"native-results.json","artifactSha256":"4fa041f425cdcd4f78307c665a1d8c50d28e78ec2a2fefd9f4d124fa7bf372a0","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/errors/0/location","valueSha256":"0116db599db0211ec6fab0ec66f9713f73536c83445d1b244c244b243fb55f66","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\support\\durabilityJourney.mjs","column":53,"line":141}},{"id":"case041-replay-restored#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-041","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case041-replay-restored#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a","pointer":"/observations/0/expected","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"case041-replay-restored#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a","pointer":"/observations/0/actual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"case041-replay-restored#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-041","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a","pointer":"/observations/0/target","valueSha256":"50f9ef7da1d8591f43a8d3d52435fdf9a50aa0e4bd34814eb2467857a588f437","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\support\\durabilityJourney.mjs","line":141}},{"id":"case041-replay-restored#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-041","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a","pointer":"/originalHash","valueSha256":"687390cefa99b051d4dc2a261ee20b2c653e9f9744383d68b82a8c2efcf7a339","matched":true,"value":"687ea9be2f3b4e457150c9476030fcbb1810cb92c4c6453af0d0ebb404140b7d"},{"id":"case041-replay-restored#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case041-replay-restored#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"97c9700f8412481416865a4c2768805d9a601b12bbdef141aa9f4a072658554a","pointer":"/restoredHash","valueSha256":"687390cefa99b051d4dc2a261ee20b2c653e9f9744383d68b82a8c2efcf7a339","matched":true,"value":"687ea9be2f3b4e457150c9476030fcbb1810cb92c4c6453af0d0ebb404140b7d"},{"id":"case041-replay-restored#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"49456fd7340e122e76cb1fdfc5178d96ac79ffc88ac5b7b65b2d68354c189898","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case041-replay-restored#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-041","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"49456fd7340e122e76cb1fdfc5178d96ac79ffc88ac5b7b65b2d68354c189898","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case041-replay-restored#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"432a4447cf0024c08e26618a897282718c97ef0b0c786d164e4b896555148d95","pointer":"/results/0/quality/cleanup","valueSha256":"c28840aae773c359359adb951f47ea05aed76974ef839812c5c5efc77740710b","matched":true,"value":{"caseId":"CASE-041","resources":[{"id":"control-case041-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":48}],"completed":true}},{"id":"case041-replay-restored#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"432a4447cf0024c08e26618a897282718c97ef0b0c786d164e4b896555148d95","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case041-replay-restored#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-041","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"432a4447cf0024c08e26618a897282718c97ef0b0c786d164e4b896555148d95","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case041-replay-restored#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-041","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"432a4447cf0024c08e26618a897282718c97ef0b0c786d164e4b896555148d95","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case044-owner-normal#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-044","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case044-owner-normal#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c","pointer":"/observations/0/expected","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case044-owner-normal#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c","pointer":"/observations/0/actual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case044-owner-normal#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c","pointer":"/observations/0/target","valueSha256":"7468c5f90d7e0f67e0aa8f1fb859450a24295af78d7b4fe0e604bea41ae456ef","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-044-pending-owner-switch-isolation\\regression.spec.mjs","line":152}},{"id":"case044-owner-normal#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c","pointer":"/originalHash","valueSha256":"c04d439d030872e3f3e6f6b720f8c54fa415de040696dc181b2e11d6292c3b3c","matched":true,"value":"a8654016afbc6ea7355790af7a5160adb3f4e083e0ba7b5a8765648547099cc9"},{"id":"case044-owner-normal#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case044-owner-normal#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"4fd49a3658688c1988b05ac5d80ce21727cd6640e5009d32a4d592bc489fd43c","pointer":"/restoredHash","valueSha256":"c04d439d030872e3f3e6f6b720f8c54fa415de040696dc181b2e11d6292c3b3c","matched":true,"value":"a8654016afbc6ea7355790af7a5160adb3f4e083e0ba7b5a8765648547099cc9"},{"id":"case044-owner-normal#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"807f019d6fe33bf5d335904a1c7e7a6e4666afc3ad70bc69823c1f5cfe535c89","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case044-owner-normal#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"807f019d6fe33bf5d335904a1c7e7a6e4666afc3ad70bc69823c1f5cfe535c89","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case044-owner-normal#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6109ccc0e9ba88cec7a3e57c8913e17de0b46b90a86afa07914d599f3acbd2a6","pointer":"/results/0/quality/cleanup","valueSha256":"c2ed4498c8f21feae3ed15b48b202068898269dbd50e42b96c002c96e704cc9e","matched":true,"value":{"caseId":"CASE-044","resources":[{"id":"control-case044-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":5},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":5},{"id":"observed-page-3","status":"passed","settled":true,"durationMs":120}],"completed":true}},{"id":"case044-owner-normal#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6109ccc0e9ba88cec7a3e57c8913e17de0b46b90a86afa07914d599f3acbd2a6","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case044-owner-normal#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6109ccc0e9ba88cec7a3e57c8913e17de0b46b90a86afa07914d599f3acbd2a6","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case044-owner-normal#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"6109ccc0e9ba88cec7a3e57c8913e17de0b46b90a86afa07914d599f3acbd2a6","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case044-owner-mutant#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-044","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/observations/0/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case044-owner-mutant#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/observations/0/expected","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case044-owner-mutant#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/observations/0/actual","valueSha256":"e235e336824c85ffede975d02584d67aa528f51ed2415b4395bdb3a69585f8e7","matched":true,"value":["58a39fce-b533-4e11-916b-d53aa8e640c4"]},{"id":"case044-owner-mutant#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/observations/0/target","valueSha256":"7468c5f90d7e0f67e0aa8f1fb859450a24295af78d7b4fe0e604bea41ae456ef","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-044-pending-owner-switch-isolation\\regression.spec.mjs","line":152}},{"id":"case044-owner-mutant#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/originalHash","valueSha256":"c04d439d030872e3f3e6f6b720f8c54fa415de040696dc181b2e11d6292c3b3c","matched":true,"value":"a8654016afbc6ea7355790af7a5160adb3f4e083e0ba7b5a8765648547099cc9"},{"id":"case044-owner-mutant#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case044-owner-mutant#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/restoredHash","valueSha256":"c04d439d030872e3f3e6f6b720f8c54fa415de040696dc181b2e11d6292c3b3c","matched":true,"value":"a8654016afbc6ea7355790af7a5160adb3f4e083e0ba7b5a8765648547099cc9"},{"id":"case044-owner-mutant#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"9f6d3eba40551bd8f5ccb0fc37ae30cec24c452cc76bfac760ef19414815352a","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case044-owner-mutant#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"9f6d3eba40551bd8f5ccb0fc37ae30cec24c452cc76bfac760ef19414815352a","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case044-owner-mutant#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"CASE-044","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"3723d018dca0620191da40149aa28321272bd0ab1246b0837ca4981818442f58","pointer":"/results/0/quality/cleanup","valueSha256":"ba76b0fc4b539d5d8cbf262e36dda4cb6a45c53797ade13ff7ab024b3ed33877","matched":true,"value":{"caseId":"CASE-044","resources":[{"id":"observed-page-1","status":"passed","settled":true,"durationMs":4},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":2},{"id":"observed-page-3","status":"passed","settled":true,"durationMs":116}],"completed":true}},{"id":"case044-owner-mutant#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"3723d018dca0620191da40149aa28321272bd0ab1246b0837ca4981818442f58","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case044-owner-mutant#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"3723d018dca0620191da40149aa28321272bd0ab1246b0837ca4981818442f58","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case044-owner-mutant#sql-applied","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-044","explanation":"해당 owner/batch/대상에 한정한 실제 제품 SQL 정의 변경. 응답 객체 위조나 임의 throw가 아니다.","artifact":"product","path":"product-mutant.json","artifactSha256":"b1d9dbcce251b02b7dde35a6fe01c8079ec6c256cc1ffa7dd1b3e12077b092e6","pointer":"/changedHash","valueSha256":"fa99f453c48de0725b0d88b48a417ac4ede958164f1afd0c40c1be32f55f7403","matched":true,"value":"9f72aafb11d428f4a95a8c943c09f7b445708fcf6fd3d04e8ef34de2a43dee8a"},{"id":"case044-owner-mutant#native-first-error-location","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"최초 native 예외가 정확히 기존 목표 단언에서 발생","artifact":"native","path":"native-results.json","artifactSha256":"9f6d3eba40551bd8f5ccb0fc37ae30cec24c452cc76bfac760ef19414815352a","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/errors/0/location","valueSha256":"ef67d03ab924282d5a990046e560f6072267b6f7a5cc966d08c8d8bde22e611c","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-044-pending-owner-switch-isolation\\regression.spec.mjs","column":36,"line":152}},{"id":"case044-owner-restored#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-044","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case044-owner-restored#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518","pointer":"/observations/0/expected","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case044-owner-restored#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518","pointer":"/observations/0/actual","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"case044-owner-restored#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-044","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518","pointer":"/observations/0/target","valueSha256":"7468c5f90d7e0f67e0aa8f1fb859450a24295af78d7b4fe0e604bea41ae456ef","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-044-pending-owner-switch-isolation\\regression.spec.mjs","line":152}},{"id":"case044-owner-restored#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-044","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518","pointer":"/originalHash","valueSha256":"c04d439d030872e3f3e6f6b720f8c54fa415de040696dc181b2e11d6292c3b3c","matched":true,"value":"a8654016afbc6ea7355790af7a5160adb3f4e083e0ba7b5a8765648547099cc9"},{"id":"case044-owner-restored#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case044-owner-restored#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"3b560e6ae93e3eb36551573a9cd7167ac1c5c2b92a0ce23155c3855859928518","pointer":"/restoredHash","valueSha256":"c04d439d030872e3f3e6f6b720f8c54fa415de040696dc181b2e11d6292c3b3c","matched":true,"value":"a8654016afbc6ea7355790af7a5160adb3f4e083e0ba7b5a8765648547099cc9"},{"id":"case044-owner-restored#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"4a0087c9c5a6e832c33a1e97c9e93cdce3b350b313dd3587505700b3fd38c10d","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case044-owner-restored#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-044","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"4a0087c9c5a6e832c33a1e97c9e93cdce3b350b313dd3587505700b3fd38c10d","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case044-owner-restored#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"fa3ed18ec8eed02b5761ea586d946f421f485cdc6b7fbbb0b92732676377fbdf","pointer":"/results/0/quality/cleanup","valueSha256":"9de7beb59d2ac72aa729da7849a9400d9b12b1fd82d71b5ab808e573e7858125","matched":true,"value":{"caseId":"CASE-044","resources":[{"id":"control-case044-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":4},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":4},{"id":"observed-page-3","status":"passed","settled":true,"durationMs":63}],"completed":true}},{"id":"case044-owner-restored#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"fa3ed18ec8eed02b5761ea586d946f421f485cdc6b7fbbb0b92732676377fbdf","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case044-owner-restored#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-044","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"fa3ed18ec8eed02b5761ea586d946f421f485cdc6b7fbbb0b92732676377fbdf","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case044-owner-restored#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-044","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"fa3ed18ec8eed02b5761ea586d946f421f485cdc6b7fbbb0b92732676377fbdf","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case053-permission-normal#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-053","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case053-permission-normal#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7","pointer":"/observations/0/expected","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case053-permission-normal#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7","pointer":"/observations/0/actual","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case053-permission-normal#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7","pointer":"/observations/0/target","valueSha256":"de7339e180646c84867d9a06b7e54f7c21e966ec0d72c18bb0c252911766e6ab","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-053-group-invite-ui-membership-revocation\\regression.spec.mjs","line":84}},{"id":"case053-permission-normal#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7","pointer":"/originalHash","valueSha256":"ad504d90e49a620ba2d4a6425378aed1571c031df0e65b2d14e769594deb2758","matched":true,"value":"a43f5d6239f043784874880f407660b0d47b4a6582b551fc3ab50b2f344a9bf9"},{"id":"case053-permission-normal#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case053-permission-normal#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"1ba27d2797b12553b81a728fb7bde2bb016df298f9e50513e973b735bccf18f7","pointer":"/restoredHash","valueSha256":"ad504d90e49a620ba2d4a6425378aed1571c031df0e65b2d14e769594deb2758","matched":true,"value":"a43f5d6239f043784874880f407660b0d47b4a6582b551fc3ab50b2f344a9bf9"},{"id":"case053-permission-normal#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"c026ad0fb9ded79f0c2a5aa7485fa2513d310bdeba49ebee2def876b4c9538bc","pointer":"/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case053-permission-normal#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"c026ad0fb9ded79f0c2a5aa7485fa2513d310bdeba49ebee2def876b4c9538bc","pointer":"/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case053-permission-normal#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"36a0e212dc094b6fae4ca17d8a789032c280e04ba2784e546ef12fc5dbbef206","pointer":"/results/0/quality/cleanup","valueSha256":"b929c953cd67cece660beb1bfdb33c6bd3b9f71fb21a77b808464da11bc71eb5","matched":true,"value":{"caseId":"CASE-053","resources":[{"id":"control-case053-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":95},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"case053-permission-normal#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"36a0e212dc094b6fae4ca17d8a789032c280e04ba2784e546ef12fc5dbbef206","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case053-permission-normal#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"36a0e212dc094b6fae4ca17d8a789032c280e04ba2784e546ef12fc5dbbef206","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case053-permission-normal#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"36a0e212dc094b6fae4ca17d8a789032c280e04ba2784e546ef12fc5dbbef206","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case053-permission-mutant#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-053","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/observations/0/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case053-permission-mutant#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/observations/0/expected","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case053-permission-mutant#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/observations/0/actual","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"case053-permission-mutant#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/observations/0/target","valueSha256":"de7339e180646c84867d9a06b7e54f7c21e966ec0d72c18bb0c252911766e6ab","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-053-group-invite-ui-membership-revocation\\regression.spec.mjs","line":84}},{"id":"case053-permission-mutant#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/originalHash","valueSha256":"ad504d90e49a620ba2d4a6425378aed1571c031df0e65b2d14e769594deb2758","matched":true,"value":"a43f5d6239f043784874880f407660b0d47b4a6582b551fc3ab50b2f344a9bf9"},{"id":"case053-permission-mutant#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case053-permission-mutant#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/restoredHash","valueSha256":"ad504d90e49a620ba2d4a6425378aed1571c031df0e65b2d14e769594deb2758","matched":true,"value":"a43f5d6239f043784874880f407660b0d47b4a6582b551fc3ab50b2f344a9bf9"},{"id":"case053-permission-mutant#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"2b5acf48306972c6a23ff8ad800716531bb768eebf38b4e0330cb6e78cacbc56","pointer":"/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case053-permission-mutant#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"2b5acf48306972c6a23ff8ad800716531bb768eebf38b4e0330cb6e78cacbc56","pointer":"/suites/0/specs/0/tests/0/results/0/status","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case053-permission-mutant#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"CASE-053","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"519235ea4ec920def815dadb20ea64b10cec8edd00eddddfa1249ee1065de86a","pointer":"/results/0/quality/cleanup","valueSha256":"8f4a6ca89711f7322783ae3f1e88510dd60271df8dbfef6fd602bde61cf49b58","matched":true,"value":{"caseId":"CASE-053","resources":[{"id":"observed-page-1","status":"passed","settled":true,"durationMs":111},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"case053-permission-mutant#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"519235ea4ec920def815dadb20ea64b10cec8edd00eddddfa1249ee1065de86a","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case053-permission-mutant#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"519235ea4ec920def815dadb20ea64b10cec8edd00eddddfa1249ee1065de86a","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case053-permission-mutant#sql-applied","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-053","explanation":"해당 owner/batch/대상에 한정한 실제 제품 SQL 정의 변경. 응답 객체 위조나 임의 throw가 아니다.","artifact":"product","path":"product-mutant.json","artifactSha256":"defc40ddb5e3b35edad87dfca6846836ee2f493588f878c7d43dce088786c463","pointer":"/changedHash","valueSha256":"6252623435124bb3e5a7f7727458cde9463f19beb7a9a210f557100ad830c9d3","matched":true,"value":"234fa99825a1e637d9e387fbc16adf35d8740429f192ae3be9a6592c2c43af05"},{"id":"case053-permission-mutant#native-first-error-location","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"최초 native 예외가 정확히 기존 목표 단언에서 발생","artifact":"native","path":"native-results.json","artifactSha256":"2b5acf48306972c6a23ff8ad800716531bb768eebf38b4e0330cb6e78cacbc56","pointer":"/suites/0/specs/0/tests/0/results/0/errors/0/location","valueSha256":"ea1a752b545b0859db6a89824f9d9e860c4ae519690a79cf1f2ccaa3032c1049","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-053-group-invite-ui-membership-revocation\\regression.spec.mjs","column":38,"line":84}},{"id":"case053-permission-restored#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-053","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case053-permission-restored#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b","pointer":"/observations/0/expected","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case053-permission-restored#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b","pointer":"/observations/0/actual","valueSha256":"719df123316fddecaa2ac0098953c720fb49754a66aa6b08a08552df4a844331","matched":true,"value":"42501"},{"id":"case053-permission-restored#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-053","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b","pointer":"/observations/0/target","valueSha256":"de7339e180646c84867d9a06b7e54f7c21e966ec0d72c18bb0c252911766e6ab","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-053-group-invite-ui-membership-revocation\\regression.spec.mjs","line":84}},{"id":"case053-permission-restored#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-053","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b","pointer":"/originalHash","valueSha256":"ad504d90e49a620ba2d4a6425378aed1571c031df0e65b2d14e769594deb2758","matched":true,"value":"a43f5d6239f043784874880f407660b0d47b4a6582b551fc3ab50b2f344a9bf9"},{"id":"case053-permission-restored#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case053-permission-restored#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"6777ee4b6b5652c118941f562e1655461d736a9e503eb5f8842bad940b5d7f3b","pointer":"/restoredHash","valueSha256":"ad504d90e49a620ba2d4a6425378aed1571c031df0e65b2d14e769594deb2758","matched":true,"value":"a43f5d6239f043784874880f407660b0d47b4a6582b551fc3ab50b2f344a9bf9"},{"id":"case053-permission-restored#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"f3d341fd4279319f64277c1682b9b07f6eef761c8e8295e8b6d0e3b9f1a3549d","pointer":"/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case053-permission-restored#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-053","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"f3d341fd4279319f64277c1682b9b07f6eef761c8e8295e8b6d0e3b9f1a3549d","pointer":"/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case053-permission-restored#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"c3ffbec9f8641a66c9f933bf143784f228773eb5e8c2a8ecfa7552894a7b0145","pointer":"/results/0/quality/cleanup","valueSha256":"73b76abfa107634cbb1f4f8d5f5cc3bc3f9bd798c224f9070da186ad67725ce4","matched":true,"value":{"caseId":"CASE-053","resources":[{"id":"control-case053-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":53},{"id":"observed-page-2","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"case053-permission-restored#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"c3ffbec9f8641a66c9f933bf143784f228773eb5e8c2a8ecfa7552894a7b0145","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case053-permission-restored#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-053","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"c3ffbec9f8641a66c9f933bf143784f228773eb5e8c2a8ecfa7552894a7b0145","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case053-permission-restored#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-053","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"c3ffbec9f8641a66c9f933bf143784f228773eb5e8c2a8ecfa7552894a7b0145","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case055-atomicity-normal#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"CASE-055","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case055-atomicity-normal#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615","pointer":"/observations/0/expected","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case055-atomicity-normal#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615","pointer":"/observations/0/actual","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case055-atomicity-normal#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615","pointer":"/observations/0/target","valueSha256":"8c93dc2ce076b1ab3efdca3d6ba1fca9c87e57d1547557a1d709ea3abb7d82a4","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-055-wodup-ui-import-job-round-trip\\regression.spec.mjs","line":54}},{"id":"case055-atomicity-normal#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615","pointer":"/originalHash","valueSha256":"a45323638b6ec892ba67199ee1cf9e3d398d377738ef8a26bde095968f101940","matched":true,"value":"b3d3cb949462afbfdc01a1b0a3c6fc55a3bfb48131741ed04d2a0f66640508d6"},{"id":"case055-atomicity-normal#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case055-atomicity-normal#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"7786868d2f6fce7e992679bb6ac083cdd14243c7ba43f8ec1555de383c383615","pointer":"/restoredHash","valueSha256":"a45323638b6ec892ba67199ee1cf9e3d398d377738ef8a26bde095968f101940","matched":true,"value":"b3d3cb949462afbfdc01a1b0a3c6fc55a3bfb48131741ed04d2a0f66640508d6"},{"id":"case055-atomicity-normal#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"a9e981ec1bf5a85666ee4a102d6db06b75140afc0fd6d75ff877784aa2f4cae1","pointer":"/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case055-atomicity-normal#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"a9e981ec1bf5a85666ee4a102d6db06b75140afc0fd6d75ff877784aa2f4cae1","pointer":"/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case055-atomicity-normal#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"b00137fc6bcd0c7a31ee5068efb84099ebb00f4db4f0750a54cb853ba592525e","pointer":"/results/0/quality/cleanup","valueSha256":"95ab47bd5b3ae5cac04193538f1583e2521a21e339ca849e26f699bb3092e976","matched":true,"value":{"caseId":"CASE-055","resources":[{"id":"case055-primary-actor","status":"passed","settled":true,"durationMs":360},{"id":"case055-provider-mapping","status":"passed","settled":true,"durationMs":10},{"id":"case055-provider-catalog","status":"passed","settled":true,"durationMs":14},{"id":"control-case055-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":49}],"completed":true}},{"id":"case055-atomicity-normal#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"b00137fc6bcd0c7a31ee5068efb84099ebb00f4db4f0750a54cb853ba592525e","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case055-atomicity-normal#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"b00137fc6bcd0c7a31ee5068efb84099ebb00f4db4f0750a54cb853ba592525e","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case055-atomicity-normal#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"b00137fc6bcd0c7a31ee5068efb84099ebb00f4db4f0750a54cb853ba592525e","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case055-atomicity-mutant#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"CASE-055","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/observations/0/matched","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"case055-atomicity-mutant#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/observations/0/expected","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case055-atomicity-mutant#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/observations/0/actual","valueSha256":"7093fda846e50b267da144f7b3683ee1dd8838506939f6052b7370dd01fa2ad0","matched":true,"value":"completed"},{"id":"case055-atomicity-mutant#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/observations/0/target","valueSha256":"8c93dc2ce076b1ab3efdca3d6ba1fca9c87e57d1547557a1d709ea3abb7d82a4","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-055-wodup-ui-import-job-round-trip\\regression.spec.mjs","line":54}},{"id":"case055-atomicity-mutant#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/originalHash","valueSha256":"a45323638b6ec892ba67199ee1cf9e3d398d377738ef8a26bde095968f101940","matched":true,"value":"b3d3cb949462afbfdc01a1b0a3c6fc55a3bfb48131741ed04d2a0f66640508d6"},{"id":"case055-atomicity-mutant#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case055-atomicity-mutant#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/restoredHash","valueSha256":"a45323638b6ec892ba67199ee1cf9e3d398d377738ef8a26bde095968f101940","matched":true,"value":"b3d3cb949462afbfdc01a1b0a3c6fc55a3bfb48131741ed04d2a0f66640508d6"},{"id":"case055-atomicity-mutant#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"4962a7507b86773ddd4860139bd76d77f849e25291dcb2839700df38ce5faa48","pointer":"/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case055-atomicity-mutant#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"4962a7507b86773ddd4860139bd76d77f849e25291dcb2839700df38ce5faa48","pointer":"/suites/0/specs/0/tests/0/results/0/status","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case055-atomicity-mutant#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-failure-path","caseId":"CASE-055","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"8f99f563bc7a8728debcd632af7c297a413b378ad1cb7591f2062e5ee2133552","pointer":"/results/0/quality/cleanup","valueSha256":"0573c8ec3ddd2e60bd464af0c2dc31d51c9e045fdb8fbe09035fd722c8cd1b35","matched":true,"value":{"caseId":"CASE-055","resources":[{"id":"case055-primary-actor","status":"passed","settled":true,"durationMs":361},{"id":"case055-provider-mapping","status":"passed","settled":true,"durationMs":9},{"id":"case055-provider-catalog","status":"passed","settled":true,"durationMs":18},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":89}],"completed":true}},{"id":"case055-atomicity-mutant#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"8f99f563bc7a8728debcd632af7c297a413b378ad1cb7591f2062e5ee2133552","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case055-atomicity-mutant#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"8f99f563bc7a8728debcd632af7c297a413b378ad1cb7591f2062e5ee2133552","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case055-atomicity-mutant#sql-applied","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"CASE-055","explanation":"해당 owner/batch/대상에 한정한 실제 제품 SQL 정의 변경. 응답 객체 위조나 임의 throw가 아니다.","artifact":"product","path":"product-mutant.json","artifactSha256":"37059b09cc694522c55996f04e181b369621fb6e1b7cce8d22dbaa55d4db6be4","pointer":"/changedHash","valueSha256":"2a7f14f9ed07a404625fdb6eafb234808010fe3bcb74ff60ed8067f73d6646f0","matched":true,"value":"9367aeba208e1bd7e03f7c0f2221b99b0b01ce89f3803ca6884760dc1c6be011"},{"id":"case055-atomicity-mutant#native-first-error-location","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"최초 native 예외가 정확히 기존 목표 단언에서 발생","artifact":"native","path":"native-results.json","artifactSha256":"4962a7507b86773ddd4860139bd76d77f849e25291dcb2839700df38ce5faa48","pointer":"/suites/0/specs/0/tests/0/results/0/errors/0/location","valueSha256":"4c3f9bb5863b94328b973216358034753670aac4d00dfe4155484fd8c00ec4bb","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-055-wodup-ui-import-job-round-trip\\regression.spec.mjs","column":97,"line":54}},{"id":"case055-atomicity-restored#goal-matched","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"CASE-055","explanation":"각 phase의 같은 목표 reader/단언에서 실제 expected와 actual을 비교한 결과. 일회용 ID가 다른 별도 실행이므로 성공 여부를 정규화하며 원시 값도 별도 인용한다.","artifact":"product","path":"product-mutant.json","artifactSha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb","pointer":"/observations/0/matched","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case055-atomicity-restored#goal-expected","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"실제 목표 단언의 독립 기대값","artifact":"product","path":"product-mutant.json","artifactSha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb","pointer":"/observations/0/expected","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case055-atomicity-restored#goal-actual","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"실제 DB/서버 reader가 반환한 값","artifact":"product","path":"product-mutant.json","artifactSha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb","pointer":"/observations/0/actual","valueSha256":"33d04bd775e7b6c6436742508b41fa693a15bd2c902fcd994253392abd717740","matched":true,"value":"failed"},{"id":"case055-atomicity-restored#goal-target","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"failure-diagnostic","caseId":"CASE-055","explanation":"변경하지 않은 목표 단언 위치","artifact":"product","path":"product-mutant.json","artifactSha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb","pointer":"/observations/0/target","valueSha256":"8c93dc2ce076b1ab3efdca3d6ba1fca9c87e57d1547557a1d709ea3abb7d82a4","matched":true,"value":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\error-cases\\CASE-055-wodup-ui-import-job-round-trip\\regression.spec.mjs","line":54}},{"id":"case055-atomicity-restored#sql-original","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"CASE-055","explanation":"실제 pg_get_functiondef로 저장한 원본 정의 해시","artifact":"product","path":"product-mutant.json","artifactSha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb","pointer":"/originalHash","valueSha256":"a45323638b6ec892ba67199ee1cf9e3d398d377738ef8a26bde095968f101940","matched":true,"value":"b3d3cb949462afbfdc01a1b0a3c6fc55a3bfb48131741ed04d2a0f66640508d6"},{"id":"case055-atomicity-restored#sql-restored","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실험 함수 원본 복원 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb","pointer":"/restored","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"case055-atomicity-restored#sql-restored-hash","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"원본 복원 뒤 실제 정의/소유자/ACL readback 비교 완료","artifact":"product","path":"product-mutant.json","artifactSha256":"5c74c2b9d6709c96e45120b931bbf89b5bb37418d4eabb9ce233563fac941abb","pointer":"/restoredHash","valueSha256":"a45323638b6ec892ba67199ee1cf9e3d398d377738ef8a26bde095968f101940","matched":true,"value":"b3d3cb949462afbfdc01a1b0a3c6fc55a3bfb48131741ed04d2a0f66640508d6"},{"id":"case055-atomicity-restored#native-first-attempt","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"자동 CASE 재시도 없이 최초 시도","artifact":"native","path":"native-results.json","artifactSha256":"37268990831a376b82b88180012cea6185d9076760b31a019714df25bb35bde3","pointer":"/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"case055-atomicity-restored#native-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"CASE-055","explanation":"의도한 목표 결함 phase의 실패를 정상 통과와 분리","artifact":"native","path":"native-results.json","artifactSha256":"37268990831a376b82b88180012cea6185d9076760b31a019714df25bb35bde3","pointer":"/suites/0/specs/0/tests/0/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"case055-atomicity-restored#owned-cleanup","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"실제 성공/목표 실패 이후 소유 자원 정리의 전항목 종료와 완료 증거","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9da99872f14a1380164c6c1cb9e31b81f0ab021b9b98048fa9c8e71cecb86770","pointer":"/results/0/quality/cleanup","valueSha256":"b6824c025b8c2d07eae862a149ca11653c7fec7a656e08eaba1eaf9d417d6101","matched":true,"value":{"caseId":"CASE-055","resources":[{"id":"case055-primary-actor","status":"passed","settled":true,"durationMs":372},{"id":"case055-provider-mapping","status":"passed","settled":true,"durationMs":9},{"id":"case055-provider-catalog","status":"passed","settled":true,"durationMs":18},{"id":"control-case055-purpose-control","status":"passed","settled":true,"durationMs":0},{"id":"observed-page-1","status":"passed","settled":true,"durationMs":47}],"completed":true}},{"id":"case055-atomicity-restored#cleanup-stage","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"fixture 전체 정리 완료","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9da99872f14a1380164c6c1cb9e31b81f0ab021b9b98048fa9c8e71cecb86770","pointer":"/results/0/diagnostic/cleanupStage","valueSha256":"90fc64195972fafd281e48fad08e72110ae816975649efec66e63b1e8c7bc719","matched":true,"value":"finished"},{"id":"case055-atomicity-restored#cleanup-failure","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"CASE-055","explanation":"정리 오류 없음","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9da99872f14a1380164c6c1cb9e31b81f0ab021b9b98048fa9c8e71cecb86770","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"ac947a9e15efeeedcda59fba60640c73648682c28415ac7c919ea2c6e11f8d6c","matched":true,"value":{"type":"undefined"}},{"id":"case055-atomicity-restored#quality-status","kind":"server-mutant","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"CASE-055","explanation":"정상과 복원에서는 기존 필수 단언·정리·시간 품질 reporter까지 통과","artifact":"quality","path":"browser-1-of-1.e2e-evidence.json","artifactSha256":"9da99872f14a1380164c6c1cb9e31b81f0ab021b9b98048fa9c8e71cecb86770","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V0 compact 320x568","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V0 compact 320x568","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V0 compact 320x568","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/checkpoints","valueSha256":"99f60249c80744768e5f9335c675e377ce29bdc5c913a2c7fdf36131278735fa","matched":true,"value":[{"id":"V0 home","passed":true,"assertions":6},{"id":"V0 calendar","passed":true,"assertions":6},{"id":"V0 volume","passed":true,"assertions":6},{"id":"V0 feed","passed":true,"assertions":6},{"id":"V0 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V0 compact 320x568","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V0 compact 320x568","explanation":"Source scope: V0의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/steps/23","valueSha256":"d38b526e1d49276ddd8bb17c9d45e2c4cae43ac3d65e5934f9c7771426ba3499","matched":true,"value":{"index":23,"parent":null,"category":"test.step","title":"V0 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6143,"finished":6186,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V0 compact 320x568","explanation":"Source scope: V0의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/steps/45","valueSha256":"1ba9c6e74b8388e45e73efdc7bfbf1ec34522ae7da70ad475b4a73e4c199a369","matched":true,"value":{"index":45,"parent":null,"category":"test.step","title":"V0 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6187,"finished":6218,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V0 compact 320x568","explanation":"Source scope: V0의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/steps/61","valueSha256":"87b5ac3f550da98d508f6ac090736693f0fe546e425ab7da89e185deeaa00c6b","matched":true,"value":{"index":61,"parent":null,"category":"test.step","title":"V0 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6219,"finished":6268,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V0 compact 320x568","explanation":"Source scope: V0의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/steps/86","valueSha256":"d40c23f169de1c8d9260236dda2ccfa7521198e3d475e01ed52bd7f6d9b1f7d6","matched":true,"value":{"index":86,"parent":null,"category":"test.step","title":"V0 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6269,"finished":6300,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V0 compact 320x568","explanation":"Source scope: V0의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/steps/102","valueSha256":"cc35939d7899f57a8417b671340d9fca702c2f7f311cd2ca09ffc92196d5226a","matched":true,"value":{"index":102,"parent":null,"category":"test.step","title":"V0 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6301,"finished":6346,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V0 compact 320x568","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/controls/0/normalActual","valueSha256":"88820462180e5c893eff2ed73f4ec33e205d1cd5acc4d17fa7b2bca2495d3448","matched":true,"value":320},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V0 compact 320x568","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/controls/0/negativeActual","valueSha256":"9a72c24f2fd76561729110d804c69f38a7088f2ec41fdf8fbfea20d07e8bcff8","matched":true,"value":352},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V0 compact 320x568","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/controls/0/restoredActual","valueSha256":"88820462180e5c893eff2ed73f4ec33e205d1cd5acc4d17fa7b2bca2495d3448","matched":true,"value":320},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V0 compact 320x568","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V0 compact 320x568","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/controls/0","valueSha256":"f773243898881de69ee2a355bac2298d17087f1688e7cde608a7ce13d1d0591d","matched":true,"value":{"id":"viewport-v0-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V0 home","status":"passed","expected":320,"comparator":{"kind":"deepEqual"},"normalActual":320,"normal":{"matched":true},"negativeActual":352,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":320,"restored":{"matched":true},"durationMs":35}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V0 compact 320x568","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/quality/cleanup","valueSha256":"062eb3fa7e33731320a51ff839f84af97764662fb6636a61d52442d2f26a41a9","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":8},{"id":"control-viewport-v0-column-width","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V0 compact 320x568","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V0 compact 320x568","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/0/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V0 compact 320x568","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/durationMs","valueSha256":"b411746bdf09bde7f1fe70ddc8fa57241a0cb79d14d6e9c27e598635ca7dae4d","matched":true,"value":4040},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V0 compact 320x568","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V0 compact 320x568","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V0 compact 320x568","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/0/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V0 compact 320x568","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V0 compact 320x568","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/0/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/title","valueSha256":"9269731895140938742205f07df49615d8a2b9049e59fb9ed901bfd0b8f33aa9","matched":true,"value":"V0 compact 320x568"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/startedAt","valueSha256":"1ecc064f4fa6920bca71224b41cc4b0bc07af93dbfdc8f7643acff96fb0858f9","matched":true,"value":"2026-09-09T20:04:16.347Z"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/finishedAt","valueSha256":"ddd0e429bb261150348a39c678d69f642a318a2ef204f119627846cf0f71c156","matched":true,"value":"2026-09-09T20:04:20.384Z"},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/contexts/0/controls","valueSha256":"f39d7c9bbef4d24656119a1a4373fc5fe159eb7b55cb0cee9d7e40815582acde","matched":true,"value":[{"id":"viewport-v0-column-width","phase":"normal","at":"2026-09-09T20:04:17.597Z","pages":[{"page":"viewport-context-1/page-1","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06"}]},{"id":"viewport-v0-column-width","phase":"inject-started","at":"2026-09-09T20:04:17.598Z","pages":[{"page":"viewport-context-1/page-1","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06"}]},{"id":"viewport-v0-column-width","phase":"inject-finished","at":"2026-09-09T20:04:17.622Z","pages":[{"page":"viewport-context-1/page-1","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06"}]},{"id":"viewport-v0-column-width","phase":"negative","at":"2026-09-09T20:04:17.624Z","pages":[{"page":"viewport-context-1/page-1","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06"}]},{"id":"viewport-v0-column-width","phase":"restore-started","at":"2026-09-09T20:04:17.624Z","pages":[{"page":"viewport-context-1/page-1","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06"}]},{"id":"viewport-v0-column-width","phase":"restore-finished","at":"2026-09-09T20:04:17.626Z","pages":[{"page":"viewport-context-1/page-1","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06"}]},{"id":"viewport-v0-column-width","phase":"restored","at":"2026-09-09T20:04:17.628Z","pages":[{"page":"viewport-context-1/page-1","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"e8ab583ff53abf74fd86290b9980bb7c36001e00ed8a9f9170083aa1e20ab690","matched":true,"value":[{"frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"B5EFBDBD91060D90D6B9E580D3A58832","path":"blank","kind":"initial","sequence":1},{"frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V0 compact 320x568","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"9b56eb1af10cffa3dd3647cb1785d9a58f657420873ec676e195488001eaaf00","matched":true,"value":[{"id":"1","protocolId":"1CB7742FCD8D006BF1EBE1790EF7DE06","method":"GET","path":"/","resourceType":"Document","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091313.452,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81091323.176,"settledSequence":5},{"id":"2","protocolId":"2448.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091562.461,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81091601.39,"settledSequence":20},{"id":"3","protocolId":"2448.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091562.84300001,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81091575.567,"settledSequence":15},{"id":"4","protocolId":"2448.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091563.16999999,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":21,"settledAtMs":81091607.738,"settledSequence":22},{"id":"5","protocolId":"2448.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091576.383,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81091585.685,"settledSequence":16},{"id":"6","protocolId":"2448.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091576.74000001,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":26,"settledAtMs":81091613.758,"settledSequence":29},{"id":"7","protocolId":"2448.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091577.013,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81091591.691,"settledSequence":18},{"id":"8","protocolId":"2448.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091611.912,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81091634.84899999,"settledSequence":32},{"id":"9","protocolId":"2448.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091612.27100001,"startedSequence":24,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":35,"settledAtMs":81091654.482,"settledSequence":38},{"id":"10","protocolId":"2448.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091612.557,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81091644.709,"settledSequence":33},{"id":"11","protocolId":"2448.52","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091644.856,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":34,"settledAtMs":81091653.866,"settledSequence":37},{"id":"12","protocolId":"2448.53","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091645.364,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81091655.05499999,"settledSequence":39},{"id":"13","protocolId":"2448.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091710.80299999,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81091719.824,"settledSequence":44},{"id":"14","protocolId":"2448.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091712.341,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81091720.487,"settledSequence":45},{"id":"15","protocolId":"2448.82","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091782.50099999,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81092503.382,"settledSequence":63},{"id":"16","protocolId":"2448.83","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091800.87799999,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81091825.616,"settledSequence":49},{"id":"17","protocolId":"2448.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091834.299,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81091886.763,"settledSequence":52},{"id":"18","protocolId":"2448.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81091892.22,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81091925.657,"settledSequence":55},{"id":"19","protocolId":"2448.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81092448.23799999,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81092464.203,"settledSequence":61},{"id":"20","protocolId":"2448.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81092448.529,"startedSequence":57,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":58,"settledAtMs":81092462.528,"settledSequence":60},{"id":"21","protocolId":"2448.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81093253.018,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81093269.75,"settledSequence":66},{"id":"22","protocolId":"2448.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81093922.57100001,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81093931.91100001,"settledSequence":69},{"id":"23","protocolId":"2448.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81094562.66700001,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81094629.10200001,"settledSequence":75},{"id":"24","protocolId":"2448.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"928ED0B3C5D5F5613819DC106036BDD0","documentId":"1CB7742FCD8D006BF1EBE1790EF7DE06","startedAtMs":81094563.043,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81094572.958,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V0 compact 320x568","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V0 compact 320x568","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/10/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V1 phone 360x780","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V1 phone 360x780","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V1 phone 360x780","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/checkpoints","valueSha256":"580f1d7bca4e409f1f309748dcc14ef6b2369be1dae65226992848f35544e828","matched":true,"value":[{"id":"V1 home","passed":true,"assertions":6},{"id":"V1 calendar","passed":true,"assertions":6},{"id":"V1 volume","passed":true,"assertions":6},{"id":"V1 feed","passed":true,"assertions":6},{"id":"V1 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V1 phone 360x780","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V1 phone 360x780","explanation":"Source scope: V1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/steps/24","valueSha256":"d13bc386f4bb2b7b193ad6878054023aa6a665c4b5d61a4e35657d4729ae56e2","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"V1 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6413,"finished":6456,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V1 phone 360x780","explanation":"Source scope: V1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/steps/46","valueSha256":"7f9d7ba48b4b101f9ddd60c092bbd90a5204df81d2370a28014fb041edded288","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"V1 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6457,"finished":6488,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V1 phone 360x780","explanation":"Source scope: V1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/steps/62","valueSha256":"1955534516ce38aa5fa1dfd6e9a188beaddafe5175d0d865628552561eb6b516","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"V1 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6489,"finished":6534,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V1 phone 360x780","explanation":"Source scope: V1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/steps/85","valueSha256":"63d6c43dd891bdd165e73fbdaffa9f6201547dec5355e9997cfc97d80c1188d0","matched":true,"value":{"index":85,"parent":null,"category":"test.step","title":"V1 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6535,"finished":6566,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V1 phone 360x780","explanation":"Source scope: V1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/steps/101","valueSha256":"7d804757670df1754d2cc7ec5a7546821da3446575227771d1238990795e87a1","matched":true,"value":{"index":101,"parent":null,"category":"test.step","title":"V1 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6567,"finished":6616,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V1 phone 360x780","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/controls/0/normalActual","valueSha256":"838f461c2fa673cec73e6eecdafa88b127802d6cb0a61c53175197a122cb645a","matched":true,"value":360},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V1 phone 360x780","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/controls/0/negativeActual","valueSha256":"6ea2fdb3399f4d2e806beb01e9a3371bd622bed6a409acf3151818d738c370ec","matched":true,"value":392},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V1 phone 360x780","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/controls/0/restoredActual","valueSha256":"838f461c2fa673cec73e6eecdafa88b127802d6cb0a61c53175197a122cb645a","matched":true,"value":360},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V1 phone 360x780","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V1 phone 360x780","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/controls/0","valueSha256":"d8de5ecb9fca7db4be149889d123e3189056bbc699becdcaf2b9394323ee47c0","matched":true,"value":{"id":"viewport-v1-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V1 home","status":"passed","expected":360,"comparator":{"kind":"deepEqual"},"normalActual":360,"normal":{"matched":true},"negativeActual":392,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":360,"restored":{"matched":true},"durationMs":42}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V1 phone 360x780","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/quality/cleanup","valueSha256":"ddf200bb2a8c0c69323af1d460e20b56dc3924f18755bc6851ca5daa8a5e4c6f","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":10},{"id":"control-viewport-v1-column-width","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V1 phone 360x780","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V1 phone 360x780","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/1/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V1 phone 360x780","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/durationMs","valueSha256":"8ee3d6eae3069ec5d7158ad189fce9b9e12048acaf77033ce180f02ca759d9b8","matched":true,"value":4439},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V1 phone 360x780","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V1 phone 360x780","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V1 phone 360x780","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/1/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V1 phone 360x780","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/1/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V1 phone 360x780","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/1/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/title","valueSha256":"47cd17105bf26d47910e90c2d5f8437506bd390056877773392b7526af3c44dd","matched":true,"value":"V1 phone 360x780"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/startedAt","valueSha256":"097ef9e44e4860e8002fdc7b3c78d928cc0fd249fd4a144a0093925edc9a35c2","matched":true,"value":"2026-09-09T20:04:20.401Z"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/finishedAt","valueSha256":"b4cba6f69a4942b997a015f1a84936b7c828c3b832e5d658832e4ee226677bd0","matched":true,"value":"2026-09-09T20:04:24.839Z"},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/contexts/0/controls","valueSha256":"050d16de6636862d4fabefeca03fba57031e0aee40e43100f308b709f7d295c8","matched":true,"value":[{"id":"viewport-v1-column-width","phase":"normal","at":"2026-09-09T20:04:21.783Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4"}]},{"id":"viewport-v1-column-width","phase":"inject-started","at":"2026-09-09T20:04:21.784Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4"}]},{"id":"viewport-v1-column-width","phase":"inject-finished","at":"2026-09-09T20:04:21.811Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4"}]},{"id":"viewport-v1-column-width","phase":"negative","at":"2026-09-09T20:04:21.814Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4"}]},{"id":"viewport-v1-column-width","phase":"restore-started","at":"2026-09-09T20:04:21.815Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4"}]},{"id":"viewport-v1-column-width","phase":"restore-finished","at":"2026-09-09T20:04:21.818Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4"}]},{"id":"viewport-v1-column-width","phase":"restored","at":"2026-09-09T20:04:21.822Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"543e9cfbfd2d996da8e59def32d2f75df158dfe08daaac416a889632663a6ff6","matched":true,"value":[{"frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"DE930065AE797F1F1BCEA44454D02BCB","path":"blank","kind":"initial","sequence":1},{"frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V1 phone 360x780","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"5fccfd85637ebd7af4cb06184f73679750ca481240aa4b58eb152b96e210f6c1","matched":true,"value":[{"id":"1","protocolId":"3F9A9DB47F76C73599B5F5F5F31156D4","method":"GET","path":"/","resourceType":"Document","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095305.728,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81095314.841,"settledSequence":5},{"id":"2","protocolId":"94996.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095536.34799999,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81095548.409,"settledSequence":16},{"id":"3","protocolId":"94996.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095536.56799999,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81095549.17,"settledSequence":17},{"id":"4","protocolId":"94996.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095536.781,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81095551.15100001,"settledSequence":18},{"id":"5","protocolId":"94996.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095546.679,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":23,"settledAtMs":81095557.053,"settledSequence":26},{"id":"6","protocolId":"94996.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095547.263,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":25,"settledAtMs":81095562.821,"settledSequence":28},{"id":"7","protocolId":"94996.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095547.607,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":24,"settledAtMs":81095561.272,"settledSequence":27},{"id":"8","protocolId":"94996.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095559.618,"startedSequence":19,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81095587.927,"settledSequence":35},{"id":"9","protocolId":"94996.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095560.057,"startedSequence":20,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81095595.654,"settledSequence":37},{"id":"10","protocolId":"94996.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095560.36299999,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81095594.698,"settledSequence":36},{"id":"11","protocolId":"94996.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095563.867,"startedSequence":22,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81095573.55499999,"settledSequence":34},{"id":"12","protocolId":"94996.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095606.563,"startedSequence":29,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81095615.83,"settledSequence":39},{"id":"13","protocolId":"94996.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095682.03,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81095691.265,"settledSequence":44},{"id":"14","protocolId":"94996.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095684.558,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81095695.476,"settledSequence":45},{"id":"15","protocolId":"94996.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095739.671,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81095760.501,"settledSequence":49},{"id":"16","protocolId":"94996.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095740.485,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81096791.236,"settledSequence":63},{"id":"17","protocolId":"94996.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095771.99399999,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81095826.86299999,"settledSequence":52},{"id":"18","protocolId":"94996.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81095832.836,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81095858.71800001,"settledSequence":55},{"id":"19","protocolId":"94996.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81096635.13700001,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81096665.847,"settledSequence":61},{"id":"20","protocolId":"94996.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81096635.584,"startedSequence":57,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":58,"settledAtMs":81096665.22,"settledSequence":60},{"id":"21","protocolId":"94996.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81097569.969,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81097586.029,"settledSequence":66},{"id":"22","protocolId":"94996.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81098221.09799999,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81098228.862,"settledSequence":69},{"id":"23","protocolId":"94996.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81098903.985,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81098969.344,"settledSequence":75},{"id":"24","protocolId":"94996.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"91BEF2297A05DE58C3AB69D64734E3A4","documentId":"3F9A9DB47F76C73599B5F5F5F31156D4","startedAtMs":81098904.19,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81098914.07499999,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V1 phone 360x780","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V1 phone 360x780","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/11/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V2 phone 375x667","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V2 phone 375x667","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V2 phone 375x667","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/checkpoints","valueSha256":"5039a5ceded5e09f34ac646be215c05cd79bf22cdfb7fc846c0ec3fb480d8b05","matched":true,"value":[{"id":"V2 home","passed":true,"assertions":6},{"id":"V2 calendar","passed":true,"assertions":6},{"id":"V2 volume","passed":true,"assertions":6},{"id":"V2 feed","passed":true,"assertions":6},{"id":"V2 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V2 phone 375x667","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V2 phone 375x667","explanation":"Source scope: V2의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/steps/24","valueSha256":"84954e37ccf7a087fb11e25c7379b535efd3b391fc62c6cbf445d439eb542b64","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"V2 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6683,"finished":6726,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V2 phone 375x667","explanation":"Source scope: V2의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/steps/46","valueSha256":"902ec428f2f480da2472526766d75d6a486d4a42c891c30202eb9cbfa872485a","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"V2 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6727,"finished":6758,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V2 phone 375x667","explanation":"Source scope: V2의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/steps/62","valueSha256":"6d1f06f7d677e8615e293bac27ea6be8f8c1b989f1d958d25c9ae9058db55dbb","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"V2 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6759,"finished":6808,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V2 phone 375x667","explanation":"Source scope: V2의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/steps/87","valueSha256":"2622e82b6036145c162a7ea9fd2dd1fbdb1fc60b35db0905dd26dbcb8c305e7a","matched":true,"value":{"index":87,"parent":null,"category":"test.step","title":"V2 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6809,"finished":6840,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V2 phone 375x667","explanation":"Source scope: V2의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/steps/103","valueSha256":"4b0a4d12ea0591ed2fd0d79677e68c668e78d7d6c7267893b97a37a79e6ab39c","matched":true,"value":{"index":103,"parent":null,"category":"test.step","title":"V2 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6841,"finished":6890,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V2 phone 375x667","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/controls/0/normalActual","valueSha256":"de5872c6bb4494cebd250152ce148cd6231654e4469229f2f993984b3950b422","matched":true,"value":375},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V2 phone 375x667","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/controls/0/negativeActual","valueSha256":"a5abb1500bdeaef41e2edd598c015edfaa46793051b82d7da60a70efbf786da4","matched":true,"value":407},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V2 phone 375x667","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/controls/0/restoredActual","valueSha256":"de5872c6bb4494cebd250152ce148cd6231654e4469229f2f993984b3950b422","matched":true,"value":375},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V2 phone 375x667","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V2 phone 375x667","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/controls/0","valueSha256":"9b8f5f7ed7a8fe668cbda4f09cadda36bd2db68174d0498bd559c9ebf4d72e82","matched":true,"value":{"id":"viewport-v2-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V2 home","status":"passed","expected":375,"comparator":{"kind":"deepEqual"},"normalActual":375,"normal":{"matched":true},"negativeActual":407,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":375,"restored":{"matched":true},"durationMs":118}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V2 phone 375x667","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/quality/cleanup","valueSha256":"da1c800d0970fbb76ccc14efa5ffe355c61e6d378db57fe4f0b582c237a051d8","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":8},{"id":"control-viewport-v2-column-width","status":"passed","settled":true,"durationMs":15}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V2 phone 375x667","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V2 phone 375x667","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/2/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V2 phone 375x667","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/durationMs","valueSha256":"6c769f97eeacbed55d9c55d1953b27a6393ae9b60569821c9126ff9ecebd3c28","matched":true,"value":4077},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V2 phone 375x667","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V2 phone 375x667","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V2 phone 375x667","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/2/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V2 phone 375x667","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/2/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V2 phone 375x667","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/2/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/title","valueSha256":"c8f56f57453e98f1efba146486761c2cc52629856e050e4f763b644a21f736b8","matched":true,"value":"V2 phone 375x667"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/startedAt","valueSha256":"03843802233980b9b3ea03fb76cddbf1996b203e0f786162b19b2a855102ee6f","matched":true,"value":"2026-09-09T20:04:24.853Z"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/finishedAt","valueSha256":"d345c35fe68bdc8417f854c43be62af4b47eae7b7f79ac9dfa3d9dbd043621fc","matched":true,"value":"2026-09-09T20:04:28.927Z"},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/contexts/0/controls","valueSha256":"66f998172ef40d1085f6f99f60afdd1fffc777c1e47aaf35569579ed2437e78d","matched":true,"value":[{"id":"viewport-v2-column-width","phase":"normal","at":"2026-09-09T20:04:26.037Z","pages":[{"page":"viewport-context-1/page-1","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D"}]},{"id":"viewport-v2-column-width","phase":"inject-started","at":"2026-09-09T20:04:26.037Z","pages":[{"page":"viewport-context-1/page-1","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D"}]},{"id":"viewport-v2-column-width","phase":"inject-finished","at":"2026-09-09T20:04:26.075Z","pages":[{"page":"viewport-context-1/page-1","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D"}]},{"id":"viewport-v2-column-width","phase":"negative","at":"2026-09-09T20:04:26.118Z","pages":[{"page":"viewport-context-1/page-1","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D"}]},{"id":"viewport-v2-column-width","phase":"restore-started","at":"2026-09-09T20:04:26.118Z","pages":[{"page":"viewport-context-1/page-1","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D"}]},{"id":"viewport-v2-column-width","phase":"restore-finished","at":"2026-09-09T20:04:26.133Z","pages":[{"page":"viewport-context-1/page-1","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D"}]},{"id":"viewport-v2-column-width","phase":"restored","at":"2026-09-09T20:04:26.153Z","pages":[{"page":"viewport-context-1/page-1","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"0a28db7ad7f21ffba609fa58575e1fb7dc31867489b8cbdd65d2f2cc6dace778","matched":true,"value":[{"frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"A03488BD6DB3B3C201154CBF6D8B5366","path":"blank","kind":"initial","sequence":1},{"frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V2 phone 375x667","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"bcadac39250a93144b5101098c772fd51e4c6a07234fafe27aff03e9a4480047","matched":true,"value":[{"id":"1","protocolId":"75B9FD19D01949B1E81DA03EFDBBDB4D","method":"GET","path":"/","resourceType":"Document","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099753.806,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81099761.764,"settledSequence":5},{"id":"2","protocolId":"82144.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099944.74700001,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81099955.65,"settledSequence":20},{"id":"3","protocolId":"82144.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099945.006,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81099954.527,"settledSequence":19},{"id":"4","protocolId":"82144.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099945.29800001,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81099958.146,"settledSequence":21},{"id":"5","protocolId":"82144.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099953.608,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81099960.497,"settledSequence":22},{"id":"6","protocolId":"82144.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099953.966,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81099962.36600001,"settledSequence":23},{"id":"7","protocolId":"82144.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099954.218,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81099963.786,"settledSequence":24},{"id":"8","protocolId":"82144.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099971.974,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81099992.15200001,"settledSequence":35},{"id":"9","protocolId":"82144.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099972.31500001,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":34,"settledAtMs":81100005.743,"settledSequence":37},{"id":"10","protocolId":"82144.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099972.579,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81100000.509,"settledSequence":36},{"id":"11","protocolId":"82144.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81099977.997,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81099991.393,"settledSequence":33},{"id":"12","protocolId":"82144.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81100006.00500001,"startedSequence":30,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81100014.088,"settledSequence":41},{"id":"13","protocolId":"82144.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81100069.692,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81100078.549,"settledSequence":45},{"id":"14","protocolId":"82144.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81100070.85000001,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81100078.342,"settledSequence":44},{"id":"15","protocolId":"82144.82","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81100124.85,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81100844.179,"settledSequence":57},{"id":"16","protocolId":"82144.83","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81100130.00999999,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81100142.74599999,"settledSequence":49},{"id":"17","protocolId":"82144.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81100151.61400001,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81100186.61,"settledSequence":52},{"id":"18","protocolId":"82144.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81100192.378,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81100209.674,"settledSequence":55},{"id":"19","protocolId":"82144.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81101121.598,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81101135.636,"settledSequence":61},{"id":"20","protocolId":"82144.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81101121.889,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81101136.339,"settledSequence":63},{"id":"21","protocolId":"82144.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81101766.992,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81101777.315,"settledSequence":66},{"id":"22","protocolId":"82144.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81102404.464,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81102411.677,"settledSequence":69},{"id":"23","protocolId":"82144.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81102990.26799999,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81103053.12300001,"settledSequence":75},{"id":"24","protocolId":"82144.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"204D49E634A027D9071C8646A0C6E995","documentId":"75B9FD19D01949B1E81DA03EFDBBDB4D","startedAtMs":81102990.57900001,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81103000.822,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V2 phone 375x667","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V2 phone 375x667","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/12/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V3 phone 390x844","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V3 phone 390x844","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V3 phone 390x844","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/checkpoints","valueSha256":"2b335dc3636550c24737e11c88dda5c940c7f1e56cebe851f663c3dfc5fe69d0","matched":true,"value":[{"id":"V3 home","passed":true,"assertions":6},{"id":"V3 calendar","passed":true,"assertions":6},{"id":"V3 volume","passed":true,"assertions":6},{"id":"V3 feed","passed":true,"assertions":6},{"id":"V3 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V3 phone 390x844","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V3 phone 390x844","explanation":"Source scope: V3의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/steps/24","valueSha256":"64907e60037768991477f7e3542e7630bd13b41e3a1ba9631995592aa1f347b3","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"V3 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":6957,"finished":7000,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V3 phone 390x844","explanation":"Source scope: V3의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/steps/46","valueSha256":"08b396e2861a6c8f7db1939f13831018eb197f9a808213e0652b09a5651c662d","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"V3 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7001,"finished":7032,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V3 phone 390x844","explanation":"Source scope: V3의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/steps/62","valueSha256":"e1b722e96f4f5eaf008d3b3d43cefc6d26b658716390d94cdd6302ca731028ca","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"V3 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7033,"finished":7082,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V3 phone 390x844","explanation":"Source scope: V3의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/steps/87","valueSha256":"a31a3488a80bb2d51e991fd61ed38a4f1ef2a6596cecdc6799072a0fefee5491","matched":true,"value":{"index":87,"parent":null,"category":"test.step","title":"V3 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7083,"finished":7114,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V3 phone 390x844","explanation":"Source scope: V3의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/steps/103","valueSha256":"4542c1d60272408e04dccbc76cfaf0b7a4c78c66ba0f86a8e2a5a89e7c3f0cb9","matched":true,"value":{"index":103,"parent":null,"category":"test.step","title":"V3 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7115,"finished":7164,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V3 phone 390x844","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/controls/0/normalActual","valueSha256":"48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924","matched":true,"value":390},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V3 phone 390x844","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/controls/0/negativeActual","valueSha256":"5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9","matched":true,"value":422},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V3 phone 390x844","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/controls/0/restoredActual","valueSha256":"48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924","matched":true,"value":390},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V3 phone 390x844","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V3 phone 390x844","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/controls/0","valueSha256":"5e746896a11eba90a32403e150dfc370f5b4c3536c22dcc30d34666b52431120","matched":true,"value":{"id":"viewport-v3-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V3 home","status":"passed","expected":390,"comparator":{"kind":"deepEqual"},"normalActual":390,"normal":{"matched":true},"negativeActual":422,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":390,"restored":{"matched":true},"durationMs":44}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V3 phone 390x844","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/quality/cleanup","valueSha256":"1261d91edfaa482ef21dacba883c82e4101449e26713f367aa0dd545fa21fa1d","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":5},{"id":"control-viewport-v3-column-width","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V3 phone 390x844","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V3 phone 390x844","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/3/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V3 phone 390x844","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/durationMs","valueSha256":"3da8c7b2f0cdecf763dc8314b5ea81fb48ddb01cef3db4a276b623d609f6e355","matched":true,"value":4553},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V3 phone 390x844","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V3 phone 390x844","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V3 phone 390x844","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/3/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V3 phone 390x844","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/3/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V3 phone 390x844","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/3/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/title","valueSha256":"34c8d536168302443a438b4dd9562e7e2adfeece5ca2fb52d31ca11ac5b1d6d5","matched":true,"value":"V3 phone 390x844"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/startedAt","valueSha256":"ad472c2974151eef7c1df1590ad98ca0b11dc7de63c23618bf8fa4144c729d78","matched":true,"value":"2026-09-09T20:04:28.944Z"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/finishedAt","valueSha256":"a98b03a803276b25deaddaabbcbef92d228877ec85bf80ed7c0d2d17a5101cd0","matched":true,"value":"2026-09-09T20:04:33.496Z"},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/contexts/0/controls","valueSha256":"e599ca68263ad5834bfd78429793b164f561bd3aba19650c602fd231dcf9e0c9","matched":true,"value":[{"id":"viewport-v3-column-width","phase":"normal","at":"2026-09-09T20:04:30.349Z","pages":[{"page":"viewport-context-1/page-1","documentId":"4D3A3D7905EC3BFD497A00C442039BC8"}]},{"id":"viewport-v3-column-width","phase":"inject-started","at":"2026-09-09T20:04:30.349Z","pages":[{"page":"viewport-context-1/page-1","documentId":"4D3A3D7905EC3BFD497A00C442039BC8"}]},{"id":"viewport-v3-column-width","phase":"inject-finished","at":"2026-09-09T20:04:30.380Z","pages":[{"page":"viewport-context-1/page-1","documentId":"4D3A3D7905EC3BFD497A00C442039BC8"}]},{"id":"viewport-v3-column-width","phase":"negative","at":"2026-09-09T20:04:30.383Z","pages":[{"page":"viewport-context-1/page-1","documentId":"4D3A3D7905EC3BFD497A00C442039BC8"}]},{"id":"viewport-v3-column-width","phase":"restore-started","at":"2026-09-09T20:04:30.383Z","pages":[{"page":"viewport-context-1/page-1","documentId":"4D3A3D7905EC3BFD497A00C442039BC8"}]},{"id":"viewport-v3-column-width","phase":"restore-finished","at":"2026-09-09T20:04:30.386Z","pages":[{"page":"viewport-context-1/page-1","documentId":"4D3A3D7905EC3BFD497A00C442039BC8"}]},{"id":"viewport-v3-column-width","phase":"restored","at":"2026-09-09T20:04:30.390Z","pages":[{"page":"viewport-context-1/page-1","documentId":"4D3A3D7905EC3BFD497A00C442039BC8"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"4c6f9a3bf97744b96d75cd34f6f51e697bf613869982b716a83c2bffe9c15426","matched":true,"value":[{"frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"26D4C9A8C63527B81510A4C23F8E3B6C","path":"blank","kind":"initial","sequence":1},{"frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V3 phone 390x844","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"aa22cc6fe567fa7960b8f4b9c2e941e3d6363dfddaa7d0117c7a0a8ae16f76c0","matched":true,"value":[{"id":"1","protocolId":"4D3A3D7905EC3BFD497A00C442039BC8","method":"GET","path":"/","resourceType":"Document","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81103868.102,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81103877.58299999,"settledSequence":5},{"id":"2","protocolId":"91408.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104104.378,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81104115.394,"settledSequence":20},{"id":"3","protocolId":"91408.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104104.61500001,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81104115.161,"settledSequence":16},{"id":"4","protocolId":"91408.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104104.84200001,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81104116.404,"settledSequence":21},{"id":"5","protocolId":"91408.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104116.62200001,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81104124.93,"settledSequence":22},{"id":"6","protocolId":"91408.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104117.049,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81104126.219,"settledSequence":23},{"id":"7","protocolId":"91408.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104117.344,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81104126.707,"settledSequence":24},{"id":"8","protocolId":"91408.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104136.15200001,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81104160.944,"settledSequence":35},{"id":"9","protocolId":"91408.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104136.55700001,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81104170.398,"settledSequence":37},{"id":"10","protocolId":"91408.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104136.838,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81104168.932,"settledSequence":36},{"id":"11","protocolId":"91408.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104143.449,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81104157.198,"settledSequence":34},{"id":"12","protocolId":"91408.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104180.551,"startedSequence":31,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81104187.336,"settledSequence":40},{"id":"13","protocolId":"91408.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104256.059,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81104274.135,"settledSequence":45},{"id":"14","protocolId":"91408.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104257.543,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81104273.757,"settledSequence":44},{"id":"15","protocolId":"91408.80","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104310.83,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81104340.478,"settledSequence":49},{"id":"16","protocolId":"91408.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104319.83399999,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":58,"settledAtMs":81105232.806,"settledSequence":59},{"id":"17","protocolId":"91408.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104348.664,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81104380.84,"settledSequence":52},{"id":"18","protocolId":"91408.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81104388.168,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81104419.482,"settledSequence":55},{"id":"19","protocolId":"91408.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81105219.092,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81105239.99,"settledSequence":62},{"id":"20","protocolId":"91408.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81105219.505,"startedSequence":57,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":61,"settledAtMs":81105242.416,"settledSequence":63},{"id":"21","protocolId":"91408.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81106168.37,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81106185.80399999,"settledSequence":66},{"id":"22","protocolId":"91408.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81106908.43900001,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81106917.23900001,"settledSequence":69},{"id":"23","protocolId":"91408.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81107571.406,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81107624.237,"settledSequence":75},{"id":"24","protocolId":"91408.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"40AE8BDEF2AA0BAD6188114488D54417","documentId":"4D3A3D7905EC3BFD497A00C442039BC8","startedAtMs":81107571.62,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81107581.03400001,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V3 phone 390x844","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V3 phone 390x844","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/13/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V5 phone 440x956","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V5 phone 440x956","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V5 phone 440x956","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/checkpoints","valueSha256":"89a7f1619e1708c9530b3a0b3328f0fab7b142cd316da8cee556411e12fe7e9b","matched":true,"value":[{"id":"V5 home","passed":true,"assertions":6},{"id":"V5 calendar","passed":true,"assertions":6},{"id":"V5 volume","passed":true,"assertions":6},{"id":"V5 feed","passed":true,"assertions":6},{"id":"V5 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V5 phone 440x956","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V5 phone 440x956","explanation":"Source scope: V5의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/steps/24","valueSha256":"db0c9adf8538bd0b1f75d1577a7cff7376fbbd81db3bcd6f9688e8d6650293c1","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"V5 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7231,"finished":7274,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V5 phone 440x956","explanation":"Source scope: V5의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/steps/46","valueSha256":"d2a102ac910c2486fb6794cf301e94c540df850a54030a9e8a163ddfce9d03dc","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"V5 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7275,"finished":7306,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V5 phone 440x956","explanation":"Source scope: V5의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/steps/62","valueSha256":"101ed1614e3877d943ae5b5d3c138b5f89eeb32fba648609c9600a49d3b7580a","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"V5 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7307,"finished":7356,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V5 phone 440x956","explanation":"Source scope: V5의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/steps/87","valueSha256":"5c36506f9793ac376672b297f9aaf1dc11082c6aa72ca93ea78a5a022988e66d","matched":true,"value":{"index":87,"parent":null,"category":"test.step","title":"V5 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7357,"finished":7388,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V5 phone 440x956","explanation":"Source scope: V5의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/steps/103","valueSha256":"33899a135bb748b26485d213d811164ad3d49abe2c584cf7af5ef7cbd1458288","matched":true,"value":{"index":103,"parent":null,"category":"test.step","title":"V5 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7389,"finished":7438,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V5 phone 440x956","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/controls/0/normalActual","valueSha256":"e3f6959781c353c201d378e02d9da532601673e08a1706fa15a5ebbd9ea1bd36","matched":true,"value":440},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V5 phone 440x956","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/controls/0/negativeActual","valueSha256":"b6cb293891dd62748d85aa2e00eb97e267870905edefdfe53a2ea0f3da49e88d","matched":true,"value":472},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V5 phone 440x956","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/controls/0/restoredActual","valueSha256":"e3f6959781c353c201d378e02d9da532601673e08a1706fa15a5ebbd9ea1bd36","matched":true,"value":440},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V5 phone 440x956","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V5 phone 440x956","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/controls/0","valueSha256":"8f0da66182421bc245e048bac9f6ddf45507a85e2565f6d0cbc83c75a7b0df50","matched":true,"value":{"id":"viewport-v5-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V5 home","status":"passed","expected":440,"comparator":{"kind":"deepEqual"},"normalActual":440,"normal":{"matched":true},"negativeActual":472,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":440,"restored":{"matched":true},"durationMs":216}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V5 phone 440x956","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/quality/cleanup","valueSha256":"02ce53331286b6c5e1234d702ab8647a810c2e03e394a2f9e74fadf1c4631a71","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":6},{"id":"control-viewport-v5-column-width","status":"passed","settled":true,"durationMs":1}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V5 phone 440x956","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V5 phone 440x956","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/4/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V5 phone 440x956","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/durationMs","valueSha256":"f36e412aea00d7c622f3d331c5ceec42eaf18bda2d0374971a09fc79d7d9f293","matched":true,"value":4519},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V5 phone 440x956","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V5 phone 440x956","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V5 phone 440x956","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/4/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V5 phone 440x956","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/4/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V5 phone 440x956","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/4/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/title","valueSha256":"71b14c0776add349c2c9caf610e63ef215bc0693316764d249d6b8824b27b3c0","matched":true,"value":"V5 phone 440x956"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/startedAt","valueSha256":"de037404c7b5b23adb9ed78cde398760dc62953ac5e69e4c8af71e0c9e4c54d7","matched":true,"value":"2026-09-09T20:04:33.507Z"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/finishedAt","valueSha256":"e1b9b9bd4f81f02c7e9815a16bc8eeab6610494b9b0089c8a7bdf346474ef6c4","matched":true,"value":"2026-09-09T20:04:38.025Z"},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/contexts/0/controls","valueSha256":"75535cfbc06f147053492d3e5f52d1569f441fb6824b677ccaa28b3dfc6c5ee3","matched":true,"value":[{"id":"viewport-v5-column-width","phase":"normal","at":"2026-09-09T20:04:34.821Z","pages":[{"page":"viewport-context-1/page-1","documentId":"638815CBBE15F65A64444DF13077A74F"}]},{"id":"viewport-v5-column-width","phase":"inject-started","at":"2026-09-09T20:04:34.821Z","pages":[{"page":"viewport-context-1/page-1","documentId":"638815CBBE15F65A64444DF13077A74F"}]},{"id":"viewport-v5-column-width","phase":"inject-finished","at":"2026-09-09T20:04:35.024Z","pages":[{"page":"viewport-context-1/page-1","documentId":"638815CBBE15F65A64444DF13077A74F"}]},{"id":"viewport-v5-column-width","phase":"negative","at":"2026-09-09T20:04:35.025Z","pages":[{"page":"viewport-context-1/page-1","documentId":"638815CBBE15F65A64444DF13077A74F"}]},{"id":"viewport-v5-column-width","phase":"restore-started","at":"2026-09-09T20:04:35.026Z","pages":[{"page":"viewport-context-1/page-1","documentId":"638815CBBE15F65A64444DF13077A74F"}]},{"id":"viewport-v5-column-width","phase":"restore-finished","at":"2026-09-09T20:04:35.027Z","pages":[{"page":"viewport-context-1/page-1","documentId":"638815CBBE15F65A64444DF13077A74F"}]},{"id":"viewport-v5-column-width","phase":"restored","at":"2026-09-09T20:04:35.030Z","pages":[{"page":"viewport-context-1/page-1","documentId":"638815CBBE15F65A64444DF13077A74F"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"8476bb37f07c95c10c87a0e41956116cb0efdbaf66d174f29203bed4d60b418f","matched":true,"value":[{"frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"023602C0739A72D330C7890242CF2ADC","path":"blank","kind":"initial","sequence":1},{"frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V5 phone 440x956","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"b685d3222ba216a05d4e689d35699d9e9c931a81ffb6260e93d511a7246c987b","matched":true,"value":[{"id":"1","protocolId":"638815CBBE15F65A64444DF13077A74F","method":"GET","path":"/","resourceType":"Document","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108391.19,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81108398.362,"settledSequence":5},{"id":"2","protocolId":"93844.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108588.713,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81108599.483,"settledSequence":17},{"id":"3","protocolId":"93844.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108588.938,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81108598.92400001,"settledSequence":16},{"id":"4","protocolId":"93844.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108589.17799999,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81108600.446,"settledSequence":21},{"id":"5","protocolId":"93844.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108599.448,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81108606.729,"settledSequence":22},{"id":"6","protocolId":"93844.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108599.87099999,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":20,"settledAtMs":81108609.639,"settledSequence":24},{"id":"7","protocolId":"93844.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108600.204,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81108608.475,"settledSequence":23},{"id":"8","protocolId":"93844.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108619.97099999,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81108636.204,"settledSequence":36},{"id":"9","protocolId":"93844.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108620.34799999,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81108634.81400001,"settledSequence":35},{"id":"10","protocolId":"93844.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108620.624,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81108640.631,"settledSequence":37},{"id":"11","protocolId":"93844.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108625.54100001,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81108632.973,"settledSequence":34},{"id":"12","protocolId":"93844.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108653.22,"startedSequence":33,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81108659.205,"settledSequence":40},{"id":"13","protocolId":"93844.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108713.97700001,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81108722.296,"settledSequence":45},{"id":"14","protocolId":"93844.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108715.59799999,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81108722.073,"settledSequence":44},{"id":"15","protocolId":"93844.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108771.076,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81108788.977,"settledSequence":49},{"id":"16","protocolId":"93844.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108771.958,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81109589.379,"settledSequence":57},{"id":"17","protocolId":"93844.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108799.346,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81108834.68,"settledSequence":52},{"id":"18","protocolId":"93844.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81108841.797,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81108869.481,"settledSequence":55},{"id":"19","protocolId":"93844.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81109864.56899999,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81109891.869,"settledSequence":63},{"id":"20","protocolId":"93844.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81109864.99800001,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81109884.95199999,"settledSequence":61},{"id":"21","protocolId":"93844.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81110616.402,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81110628.907,"settledSequence":66},{"id":"22","protocolId":"93844.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81111405.833,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81111415.376,"settledSequence":69},{"id":"23","protocolId":"93844.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81112117.928,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81112167.367,"settledSequence":75},{"id":"24","protocolId":"93844.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"B19C06383CA5E4E0EB5ED6D9871B108A","documentId":"638815CBBE15F65A64444DF13077A74F","startedAtMs":81112118.128,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81112126.99800001,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V5 phone 440x956","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V5 phone 440x956","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/14/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V6 wide-touch 820x1180","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V6 wide-touch 820x1180","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V6 wide-touch 820x1180","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/checkpoints","valueSha256":"17e9aee16d4000616010494bd4439eca8327d8cdecf450eb60a939ff796615aa","matched":true,"value":[{"id":"V6 home","passed":true,"assertions":6},{"id":"V6 calendar","passed":true,"assertions":6},{"id":"V6 volume","passed":true,"assertions":6},{"id":"V6 feed","passed":true,"assertions":6},{"id":"V6 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V6 wide-touch 820x1180","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V6 wide-touch 820x1180","explanation":"Source scope: V6의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/steps/24","valueSha256":"65e5b859adf4bf2089ae4702202c29853fe87e13059d8c98f062fe9b5a374159","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"V6 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7505,"finished":7548,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V6 wide-touch 820x1180","explanation":"Source scope: V6의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/steps/46","valueSha256":"4d4e972971c281fc4cef713d721fbff96864378bb98cf068b6abf3a21d985cf3","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"V6 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7549,"finished":7580,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V6 wide-touch 820x1180","explanation":"Source scope: V6의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/steps/62","valueSha256":"be61b9c84f6d9699def75cbaf02c3c21381552dc038cda06703d617c754b3fc2","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"V6 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7581,"finished":7630,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V6 wide-touch 820x1180","explanation":"Source scope: V6의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/steps/87","valueSha256":"60f1809ca11dfcd07482d552bafd90fab3970dc56481e05682c8e1b0918d74ad","matched":true,"value":{"index":87,"parent":null,"category":"test.step","title":"V6 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7631,"finished":7662,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V6 wide-touch 820x1180","explanation":"Source scope: V6의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/steps/103","valueSha256":"b455ab4ce085c1bba3aa0f7a0515c3515be9495460411dfb918e7dd11b0088ad","matched":true,"value":{"index":103,"parent":null,"category":"test.step","title":"V6 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7663,"finished":7712,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V6 wide-touch 820x1180","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/controls/0/normalActual","valueSha256":"284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4","matched":true,"value":600},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V6 wide-touch 820x1180","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/controls/0/negativeActual","valueSha256":"3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f","matched":true,"value":632},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V6 wide-touch 820x1180","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/controls/0/restoredActual","valueSha256":"284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4","matched":true,"value":600},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V6 wide-touch 820x1180","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V6 wide-touch 820x1180","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/controls/0","valueSha256":"e14cf1b2f6651f4addcf6b9bad7b4d5a88dca41893426f5ced4c3bc50897cd52","matched":true,"value":{"id":"viewport-v6-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V6 home","status":"passed","expected":600,"comparator":{"kind":"deepEqual"},"normalActual":600,"normal":{"matched":true},"negativeActual":632,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":600,"restored":{"matched":true},"durationMs":24}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V6 wide-touch 820x1180","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/quality/cleanup","valueSha256":"b4c52cca287c77e32c7e8e0c56701f7a68d0dbce14245f4457a2b080fe6d820f","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":8},{"id":"control-viewport-v6-column-width","status":"passed","settled":true,"durationMs":1}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V6 wide-touch 820x1180","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V6 wide-touch 820x1180","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/5/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V6 wide-touch 820x1180","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/durationMs","valueSha256":"514e830391320b3aa28e6df60a9a7951a603d8418e948c42da2f4305af9121f7","matched":true,"value":4084},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V6 wide-touch 820x1180","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V6 wide-touch 820x1180","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V6 wide-touch 820x1180","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/5/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V6 wide-touch 820x1180","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/5/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V6 wide-touch 820x1180","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/5/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/title","valueSha256":"347f23def16a7eeff3ecff0208b20deb89d4ef79ca870b9ee688ee68336d3657","matched":true,"value":"V6 wide-touch 820x1180"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/startedAt","valueSha256":"3c78f61189c2f8cc8d2376ae1836f49fe466f533a8a59ea53f9c42d864a9f76b","matched":true,"value":"2026-09-09T20:04:38.035Z"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/finishedAt","valueSha256":"4f9e2351a403620dd3d67de53f81c480698633bed5e3b981a45953a3814ae4b5","matched":true,"value":"2026-09-09T20:04:42.116Z"},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/contexts/0/controls","valueSha256":"d64d87040b28a4752ee7520cd6579f1d0b0464ec3afcfe9fbfd0b25d666b41a8","matched":true,"value":[{"id":"viewport-v6-column-width","phase":"normal","at":"2026-09-09T20:04:39.281Z","pages":[{"page":"viewport-context-1/page-1","documentId":"C2E9704F2CF839B28A5EBE33539CCC74"}]},{"id":"viewport-v6-column-width","phase":"inject-started","at":"2026-09-09T20:04:39.281Z","pages":[{"page":"viewport-context-1/page-1","documentId":"C2E9704F2CF839B28A5EBE33539CCC74"}]},{"id":"viewport-v6-column-width","phase":"inject-finished","at":"2026-09-09T20:04:39.299Z","pages":[{"page":"viewport-context-1/page-1","documentId":"C2E9704F2CF839B28A5EBE33539CCC74"}]},{"id":"viewport-v6-column-width","phase":"negative","at":"2026-09-09T20:04:39.301Z","pages":[{"page":"viewport-context-1/page-1","documentId":"C2E9704F2CF839B28A5EBE33539CCC74"}]},{"id":"viewport-v6-column-width","phase":"restore-started","at":"2026-09-09T20:04:39.301Z","pages":[{"page":"viewport-context-1/page-1","documentId":"C2E9704F2CF839B28A5EBE33539CCC74"}]},{"id":"viewport-v6-column-width","phase":"restore-finished","at":"2026-09-09T20:04:39.302Z","pages":[{"page":"viewport-context-1/page-1","documentId":"C2E9704F2CF839B28A5EBE33539CCC74"}]},{"id":"viewport-v6-column-width","phase":"restored","at":"2026-09-09T20:04:39.304Z","pages":[{"page":"viewport-context-1/page-1","documentId":"C2E9704F2CF839B28A5EBE33539CCC74"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"3320b7bc8db63610965706726c69e624e73cc8dc058d1627b086604f5638cdb9","matched":true,"value":[{"frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"07AC3D14A90A633FE5856A39A3031A48","path":"blank","kind":"initial","sequence":1},{"frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V6 wide-touch 820x1180","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"8f0db8c4325f5c4ba0fda401154cbbbfe3a283e526689fc94fc07cf9aa017194","matched":true,"value":[{"id":"1","protocolId":"C2E9704F2CF839B28A5EBE33539CCC74","method":"GET","path":"/","resourceType":"Document","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81112902.19500001,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81112906.82200001,"settledSequence":5},{"id":"2","protocolId":"92136.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113068.966,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81113077.63299999,"settledSequence":19},{"id":"3","protocolId":"92136.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113069.16600001,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81113079.04300001,"settledSequence":21},{"id":"4","protocolId":"92136.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113069.372,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81113078.387,"settledSequence":20},{"id":"5","protocolId":"92136.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113077.842,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81113084.075,"settledSequence":22},{"id":"6","protocolId":"92136.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113078.2,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81113085.422,"settledSequence":24},{"id":"7","protocolId":"92136.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113078.49,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81113084.88700001,"settledSequence":23},{"id":"8","protocolId":"92136.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113093.05700001,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81113104.861,"settledSequence":33},{"id":"9","protocolId":"92136.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113093.275,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":34,"settledAtMs":81113107.283,"settledSequence":36},{"id":"10","protocolId":"92136.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113093.46000001,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":35,"settledAtMs":81113108.385,"settledSequence":37},{"id":"11","protocolId":"92136.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113096.492,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81113102.225,"settledSequence":32},{"id":"12","protocolId":"92136.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113116.815,"startedSequence":31,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81113122.582,"settledSequence":39},{"id":"13","protocolId":"92136.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113164.655,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81113170.416,"settledSequence":44},{"id":"14","protocolId":"92136.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113165.807,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81113171.466,"settledSequence":45},{"id":"15","protocolId":"92136.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113227.777,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81113241.37,"settledSequence":49},{"id":"16","protocolId":"92136.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113228.57399999,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81113883.076,"settledSequence":57},{"id":"17","protocolId":"92136.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113250.61,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81113272.27499999,"settledSequence":52},{"id":"18","protocolId":"92136.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81113278.55,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81113294.772,"settledSequence":55},{"id":"19","protocolId":"92136.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81114117.943,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":61,"settledAtMs":81114129.766,"settledSequence":63},{"id":"20","protocolId":"92136.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81114118.16,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81114129.49399999,"settledSequence":62},{"id":"21","protocolId":"92136.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81114799.829,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81114811.59,"settledSequence":66},{"id":"22","protocolId":"92136.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81115502.618,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81115508.702,"settledSequence":69},{"id":"23","protocolId":"92136.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81116151.618,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81116202.79100001,"settledSequence":75},{"id":"24","protocolId":"92136.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"2503364D4B381FA694404CCBBD24224B","documentId":"C2E9704F2CF839B28A5EBE33539CCC74","startedAtMs":81116151.82100001,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81116160.777,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V6 wide-touch 820x1180","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V6 wide-touch 820x1180","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/15/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V7 wide-touch 984x1092","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V7 wide-touch 984x1092","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V7 wide-touch 984x1092","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/checkpoints","valueSha256":"c5636b513320304d4a029c22842cf64987e4028dd6dcab20189688381f6f9d5a","matched":true,"value":[{"id":"V7 home","passed":true,"assertions":6},{"id":"V7 calendar","passed":true,"assertions":6},{"id":"V7 volume","passed":true,"assertions":6},{"id":"V7 feed","passed":true,"assertions":6},{"id":"V7 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V7 wide-touch 984x1092","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V7 wide-touch 984x1092","explanation":"Source scope: V7의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/steps/24","valueSha256":"e8a2a1e96a0b24db9da0a2a747d127fe10e36c439ae7446b821d16359c8b2582","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"V7 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7779,"finished":7822,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V7 wide-touch 984x1092","explanation":"Source scope: V7의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/steps/46","valueSha256":"80238c6765f89f8a702ba273efe7398c7c7dea6659369f5fd1d3b4d7f55dbbf7","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"V7 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7823,"finished":7854,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V7 wide-touch 984x1092","explanation":"Source scope: V7의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/steps/62","valueSha256":"77c6dfd7480ccad636f7cad4bbcccc831de518e6fb02a66bcb254bd962ea7650","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"V7 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7855,"finished":7904,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V7 wide-touch 984x1092","explanation":"Source scope: V7의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/steps/87","valueSha256":"4ea2ed7b4f0966de6b9787f83c7cb30f483ed21b848423bf44c3e5c108ea3fd6","matched":true,"value":{"index":87,"parent":null,"category":"test.step","title":"V7 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7905,"finished":7936,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V7 wide-touch 984x1092","explanation":"Source scope: V7의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/steps/103","valueSha256":"da65b0e4af3b357bec5ece3f2d205d48bd980aafac43271ae1954194e84c181e","matched":true,"value":{"index":103,"parent":null,"category":"test.step","title":"V7 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":7937,"finished":7986,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V7 wide-touch 984x1092","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/controls/0/normalActual","valueSha256":"284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4","matched":true,"value":600},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V7 wide-touch 984x1092","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/controls/0/negativeActual","valueSha256":"3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f","matched":true,"value":632},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V7 wide-touch 984x1092","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/controls/0/restoredActual","valueSha256":"284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4","matched":true,"value":600},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V7 wide-touch 984x1092","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V7 wide-touch 984x1092","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/controls/0","valueSha256":"a20d3b149786be7c350f3edbd684804285594cc8260492c2a9088eea4d5be563","matched":true,"value":{"id":"viewport-v7-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V7 home","status":"passed","expected":600,"comparator":{"kind":"deepEqual"},"normalActual":600,"normal":{"matched":true},"negativeActual":632,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":600,"restored":{"matched":true},"durationMs":27}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V7 wide-touch 984x1092","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/quality/cleanup","valueSha256":"38c39ce0b87540c9b5b097c8afb7dc34416a6355010e825b0375930880e29acd","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":6},{"id":"control-viewport-v7-column-width","status":"passed","settled":true,"durationMs":1}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V7 wide-touch 984x1092","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V7 wide-touch 984x1092","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/6/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V7 wide-touch 984x1092","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/durationMs","valueSha256":"9c27727c109abd005defbcac1ab6f1a69a3f858144024969816b65c00f89ed18","matched":true,"value":4174},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V7 wide-touch 984x1092","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V7 wide-touch 984x1092","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V7 wide-touch 984x1092","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/6/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V7 wide-touch 984x1092","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/6/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V7 wide-touch 984x1092","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/6/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/title","valueSha256":"aa2589c06a9a823a97aaa16a7e2f3aebb70ae4554669d730f60e20725d529a30","matched":true,"value":"V7 wide-touch 984x1092"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/startedAt","valueSha256":"143a8bd6311763a1b2426b3a9d5c52944cde36e55c1659bcccb8dc24ef65f1c7","matched":true,"value":"2026-09-09T20:04:42.130Z"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/finishedAt","valueSha256":"302c22b76a11ec3f37183e94af00c4b52980cc168b85b1c989a2c1645221febd","matched":true,"value":"2026-09-09T20:04:46.302Z"},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/contexts/0/controls","valueSha256":"3ab0e5570d2648ed94dd39be5a2a1d4bba0441147989b5fbc2631d11716f4570","matched":true,"value":[{"id":"viewport-v7-column-width","phase":"normal","at":"2026-09-09T20:04:43.422Z","pages":[{"page":"viewport-context-1/page-1","documentId":"96251814B20B53BD66BED16542837F09"}]},{"id":"viewport-v7-column-width","phase":"inject-started","at":"2026-09-09T20:04:43.422Z","pages":[{"page":"viewport-context-1/page-1","documentId":"96251814B20B53BD66BED16542837F09"}]},{"id":"viewport-v7-column-width","phase":"inject-finished","at":"2026-09-09T20:04:43.441Z","pages":[{"page":"viewport-context-1/page-1","documentId":"96251814B20B53BD66BED16542837F09"}]},{"id":"viewport-v7-column-width","phase":"negative","at":"2026-09-09T20:04:43.443Z","pages":[{"page":"viewport-context-1/page-1","documentId":"96251814B20B53BD66BED16542837F09"}]},{"id":"viewport-v7-column-width","phase":"restore-started","at":"2026-09-09T20:04:43.443Z","pages":[{"page":"viewport-context-1/page-1","documentId":"96251814B20B53BD66BED16542837F09"}]},{"id":"viewport-v7-column-width","phase":"restore-finished","at":"2026-09-09T20:04:43.444Z","pages":[{"page":"viewport-context-1/page-1","documentId":"96251814B20B53BD66BED16542837F09"}]},{"id":"viewport-v7-column-width","phase":"restored","at":"2026-09-09T20:04:43.446Z","pages":[{"page":"viewport-context-1/page-1","documentId":"96251814B20B53BD66BED16542837F09"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"2cefc409f287422d6be9913c4ce4a2f3cfca850d47ec1ce45321b8ac18354f80","matched":true,"value":[{"frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"8B9C4CB2F055A2AB6E8097A996CE3F5E","path":"blank","kind":"initial","sequence":1},{"frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V7 wide-touch 984x1092","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"e0338d953028ed99f65b9458ea180f55149f28d7f1dd919803707c330e8c0e42","matched":true,"value":[{"id":"1","protocolId":"96251814B20B53BD66BED16542837F09","method":"GET","path":"/","resourceType":"Document","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117012.913,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81117017.764,"settledSequence":5},{"id":"2","protocolId":"95632.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117179.665,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81117188.075,"settledSequence":20},{"id":"3","protocolId":"95632.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117179.87,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81117187.655,"settledSequence":19},{"id":"4","protocolId":"95632.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117180.131,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81117190.56,"settledSequence":21},{"id":"5","protocolId":"95632.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117188.245,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81117193.36400001,"settledSequence":22},{"id":"6","protocolId":"95632.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117188.609,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81117196.127,"settledSequence":23},{"id":"7","protocolId":"95632.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117188.946,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81117195.412,"settledSequence":24},{"id":"8","protocolId":"95632.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117204.847,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81117219.51900001,"settledSequence":35},{"id":"9","protocolId":"95632.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117205.09899999,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81117222.957,"settledSequence":37},{"id":"10","protocolId":"95632.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117205.29699999,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81117221.81400001,"settledSequence":36},{"id":"11","protocolId":"95632.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117209.778,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81117217.927,"settledSequence":34},{"id":"12","protocolId":"95632.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117234.602,"startedSequence":33,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81117240.203,"settledSequence":40},{"id":"13","protocolId":"95632.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117286.612,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81117295.694,"settledSequence":44},{"id":"14","protocolId":"95632.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117288.639,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81117296.064,"settledSequence":45},{"id":"15","protocolId":"95632.80","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117341.198,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81117362.704,"settledSequence":49},{"id":"16","protocolId":"95632.81","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117343.092,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81118008.554,"settledSequence":57},{"id":"17","protocolId":"95632.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117370.151,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81117393.382,"settledSequence":52},{"id":"18","protocolId":"95632.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81117400.664,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81117429.434,"settledSequence":55},{"id":"19","protocolId":"95632.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81118270.132,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":61,"settledAtMs":81118285.189,"settledSequence":63},{"id":"20","protocolId":"95632.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81118270.436,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81118283.448,"settledSequence":62},{"id":"21","protocolId":"95632.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81118980.209,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81118992.568,"settledSequence":66},{"id":"22","protocolId":"95632.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81119667.715,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81119674.95099999,"settledSequence":69},{"id":"23","protocolId":"95632.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81120387.26200001,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81120446.00500001,"settledSequence":75},{"id":"24","protocolId":"95632.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"D6759E18808F6496E82121F9E7274BC6","documentId":"96251814B20B53BD66BED16542837F09","startedAtMs":81120387.513,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81120396.58299999,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V7 wide-touch 984x1092","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V7 wide-touch 984x1092","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/16/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"V8 wide-touch 932x440","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V8 wide-touch 932x440","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V8 wide-touch 932x440","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/checkpoints","valueSha256":"183a8a4be290214ae5e1dcca841385910b7be38fa46275db8534ec92caed088e","matched":true,"value":[{"id":"V8 home","passed":true,"assertions":6},{"id":"V8 calendar","passed":true,"assertions":6},{"id":"V8 volume","passed":true,"assertions":6},{"id":"V8 feed","passed":true,"assertions":6},{"id":"V8 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"V8 wide-touch 932x440","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V8 wide-touch 932x440","explanation":"Source scope: V8의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/steps/24","valueSha256":"1bf1ea82177c6d96133a690e069ef76f8ea4a00dd2d27a9b5e25758ed376e625","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"V8 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8053,"finished":8096,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V8 wide-touch 932x440","explanation":"Source scope: V8의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/steps/46","valueSha256":"e803bae51669ad77a4979b29b5973a01e3d7e33549c6bb9ae0b99aaeb26c61f3","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"V8 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8097,"finished":8128,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V8 wide-touch 932x440","explanation":"Source scope: V8의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/steps/62","valueSha256":"0b449a6b2c05ac295991051aa79d3ece6a0842a7f813e29561ed061ed3de2d08","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"V8 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8129,"finished":8178,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V8 wide-touch 932x440","explanation":"Source scope: V8의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/steps/87","valueSha256":"556d89c4ce0f31177cce03cab505abf0a926169af6a064b5b49e79e564d64f3c","matched":true,"value":{"index":87,"parent":null,"category":"test.step","title":"V8 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8179,"finished":8210,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V8 wide-touch 932x440","explanation":"Source scope: V8의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/steps/103","valueSha256":"943f3025c9aabb82840a844e7b0314b1f576caf64407bbf960206d439e08d6b5","matched":true,"value":{"index":103,"parent":null,"category":"test.step","title":"V8 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8211,"finished":8260,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"V8 wide-touch 932x440","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/controls/0/normalActual","valueSha256":"284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4","matched":true,"value":600},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"V8 wide-touch 932x440","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/controls/0/negativeActual","valueSha256":"3bcc1340d90b3d55accb9a57998b69708fea2a63c39f7369047469f952ccad4f","matched":true,"value":632},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"V8 wide-touch 932x440","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/controls/0/restoredActual","valueSha256":"284b7e6d788f363f910f7beb1910473e23ce9d6c871f1ce0f31f22a982d48ad4","matched":true,"value":600},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"V8 wide-touch 932x440","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"V8 wide-touch 932x440","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/controls/0","valueSha256":"344fc4ea1ae9a0a095ede1874d311b0eb026e255920d0f9a5aeee15db1809922","matched":true,"value":{"id":"viewport-v8-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"V8 home","status":"passed","expected":600,"comparator":{"kind":"deepEqual"},"normalActual":600,"normal":{"matched":true},"negativeActual":632,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":600,"restored":{"matched":true},"durationMs":30}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V8 wide-touch 932x440","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/quality/cleanup","valueSha256":"d78134487a7ec7e4ca802e9ab286901d95c9bed99941b04433fdc379cf79e81e","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":6},{"id":"control-viewport-v8-column-width","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V8 wide-touch 932x440","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V8 wide-touch 932x440","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/7/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"V8 wide-touch 932x440","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/durationMs","valueSha256":"2a3b858f52f7682689e5a2d201d861682f52cab93f7b67c75ff1d9648f79ceb3","matched":true,"value":4148},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V8 wide-touch 932x440","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V8 wide-touch 932x440","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V8 wide-touch 932x440","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/7/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V8 wide-touch 932x440","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/7/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"V8 wide-touch 932x440","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/7/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/title","valueSha256":"093c87b30ea8a1181de31c03b6948bb4115d514fa286ddab0700dae91d7b30d0","matched":true,"value":"V8 wide-touch 932x440"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/startedAt","valueSha256":"c9c24289ae8c163d0ed8c2ea785c2a6be56eed18e56e3dd8b38598146d4f496c","matched":true,"value":"2026-09-09T20:04:46.312Z"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/finishedAt","valueSha256":"399c98db5741942e9a5f9fc5fcc3568b701625a1f036574e92efd9ab3a4e3842","matched":true,"value":"2026-09-09T20:04:50.458Z"},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/contexts/0/controls","valueSha256":"d0d682f416f06ac752659d62bdd2ec34ca5a7ba7ca1139c14b2765b1a77fae8e","matched":true,"value":[{"id":"viewport-v8-column-width","phase":"normal","at":"2026-09-09T20:04:47.611Z","pages":[{"page":"viewport-context-1/page-1","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E"}]},{"id":"viewport-v8-column-width","phase":"inject-started","at":"2026-09-09T20:04:47.611Z","pages":[{"page":"viewport-context-1/page-1","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E"}]},{"id":"viewport-v8-column-width","phase":"inject-finished","at":"2026-09-09T20:04:47.632Z","pages":[{"page":"viewport-context-1/page-1","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E"}]},{"id":"viewport-v8-column-width","phase":"negative","at":"2026-09-09T20:04:47.634Z","pages":[{"page":"viewport-context-1/page-1","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E"}]},{"id":"viewport-v8-column-width","phase":"restore-started","at":"2026-09-09T20:04:47.635Z","pages":[{"page":"viewport-context-1/page-1","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E"}]},{"id":"viewport-v8-column-width","phase":"restore-finished","at":"2026-09-09T20:04:47.637Z","pages":[{"page":"viewport-context-1/page-1","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E"}]},{"id":"viewport-v8-column-width","phase":"restored","at":"2026-09-09T20:04:47.638Z","pages":[{"page":"viewport-context-1/page-1","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"6d87166f660e245e376678119165a73a63f01d3994527a203cce0326e5703e03","matched":true,"value":[{"frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"082D8BCDEA911D9583BE4D9EC4B9293A","path":"blank","kind":"initial","sequence":1},{"frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"V8 wide-touch 932x440","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"c7bb127b3b3f3fd17c1f74c444e5a1571928fc90279ce764e639a2da165b3d80","matched":true,"value":[{"id":"1","protocolId":"525ACE9E7E664BB3228A2ABC619B4E0E","method":"GET","path":"/","resourceType":"Document","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121170.73699999,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81121175.595,"settledSequence":5},{"id":"2","protocolId":"95048.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121326.642,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81121336.931,"settledSequence":17},{"id":"3","protocolId":"95048.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121326.97399999,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81121336.704,"settledSequence":15},{"id":"4","protocolId":"95048.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121327.288,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81121338.388,"settledSequence":18},{"id":"5","protocolId":"95048.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121336.933,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81121345.09099999,"settledSequence":25},{"id":"6","protocolId":"95048.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121337.565,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":21,"settledAtMs":81121346.844,"settledSequence":27},{"id":"7","protocolId":"95048.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121337.86400001,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":20,"settledAtMs":81121345.856,"settledSequence":26},{"id":"8","protocolId":"95048.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121353.985,"startedSequence":22,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81121371.195,"settledSequence":35},{"id":"9","protocolId":"95048.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121354.25299999,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81121370.337,"settledSequence":34},{"id":"10","protocolId":"95048.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121354.439,"startedSequence":24,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81121380.335,"settledSequence":37},{"id":"11","protocolId":"95048.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121357.233,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81121367.229,"settledSequence":33},{"id":"12","protocolId":"95048.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121391.464,"startedSequence":32,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81121400.023,"settledSequence":39},{"id":"13","protocolId":"95048.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121447.751,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81121453.323,"settledSequence":44},{"id":"14","protocolId":"95048.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121448.802,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81121453.529,"settledSequence":45},{"id":"15","protocolId":"95048.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121512.75999999,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81121524.626,"settledSequence":49},{"id":"16","protocolId":"95048.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121513.68,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81122149.953,"settledSequence":57},{"id":"17","protocolId":"95048.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121532.273,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81121554.00600001,"settledSequence":52},{"id":"18","protocolId":"95048.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81121558.86600001,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81121575.65499999,"settledSequence":55},{"id":"19","protocolId":"95048.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81122452.956,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":61,"settledAtMs":81122464.185,"settledSequence":63},{"id":"20","protocolId":"95048.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81122453.241,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81122463.959,"settledSequence":62},{"id":"21","protocolId":"95048.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81123130.96900001,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81123140.736,"settledSequence":66},{"id":"22","protocolId":"95048.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81123852.894,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81123861.618,"settledSequence":69},{"id":"23","protocolId":"95048.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81124533.612,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81124579.66800001,"settledSequence":75},{"id":"24","protocolId":"95048.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"45EFC70799CB71DA3AB85A141FB01129","documentId":"525ACE9E7E664BB3228A2ABC619B4E0E","startedAtMs":81124533.847,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81124540.43599999,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V8 wide-touch 932x440","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"V8 wide-touch 932x440","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/17/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"P1 pointer-mockup 800x900","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"P1 pointer-mockup 800x900","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"P1 pointer-mockup 800x900","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/checkpoints","valueSha256":"71ceb3a3833edc8b18b8225b2c8136dcfb6d1120b41c56b737a41ada39cf474c","matched":true,"value":[{"id":"P1 home","passed":true,"assertions":6},{"id":"P1 calendar","passed":true,"assertions":6},{"id":"P1 volume","passed":true,"assertions":6},{"id":"P1 feed","passed":true,"assertions":6},{"id":"P1 profile","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"P1 pointer-mockup 800x900","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"P1 pointer-mockup 800x900","explanation":"Source scope: P1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/steps/24","valueSha256":"536be7b78526a90d7d76313efd8437e81a3931a6535213da9d4dbb8f1f3e8a34","matched":true,"value":{"index":24,"parent":null,"category":"test.step","title":"P1 home","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8327,"finished":8370,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"P1 pointer-mockup 800x900","explanation":"Source scope: P1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/steps/46","valueSha256":"3eb95b1b59b429ce089a45fffbaad0622cdc036cb2e437ae1cca6fe5a5e3cfaa","matched":true,"value":{"index":46,"parent":null,"category":"test.step","title":"P1 calendar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8371,"finished":8402,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"P1 pointer-mockup 800x900","explanation":"Source scope: P1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/steps/62","valueSha256":"32337bcba1f37a57d83983c36376bb9a959f1b2930e01f61752e20bf78741e61","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"P1 volume","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8403,"finished":8452,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"P1 pointer-mockup 800x900","explanation":"Source scope: P1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/steps/87","valueSha256":"6a74bbf18a2f6740faed825c377567bfee11a6e47f1574fb541eed7be4a969f8","matched":true,"value":{"index":87,"parent":null,"category":"test.step","title":"P1 feed","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8453,"finished":8484,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"P1 pointer-mockup 800x900","explanation":"Source scope: P1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/steps/103","valueSha256":"405ba3677abfa8794af20dbd491cb69d3d0e6793c3270ed9f2198b58f98b2c4f","matched":true,"value":{"index":103,"parent":null,"category":"test.step","title":"P1 profile","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":177,"column":9},"pollSampleLocations":null,"started":8485,"finished":8534,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"P1 pointer-mockup 800x900","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/controls/0/normalActual","valueSha256":"48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924","matched":true,"value":390},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"P1 pointer-mockup 800x900","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/controls/0/negativeActual","valueSha256":"5658b88806a236b6439a7ecd0a87af2475a02a848095304c6d25981ae5e7e9a9","matched":true,"value":422},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"P1 pointer-mockup 800x900","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/controls/0/restoredActual","valueSha256":"48a1a756f2d83f1dc57bbf14052b70a6f40d0fceed6662812e34903a9fe90924","matched":true,"value":390},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"P1 pointer-mockup 800x900","explanation":"home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. Scope limit: home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"P1 pointer-mockup 800x900","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/controls/0","valueSha256":"c256eb3c2cbc8893b2f3db584f024317d1633cf4167b851d69e9b2e1b8d43a1f","matched":true,"value":{"id":"viewport-p1-column-width","description":"해당 기기의 실제 앱 컬럼 폭이 계약값과 달라지는 레이아웃 결함","boundary":"P1 home","status":"passed","expected":390,"comparator":{"kind":"deepEqual"},"normalActual":390,"normal":{"matched":true},"negativeActual":422,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":390,"restored":{"matched":true},"durationMs":38}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"P1 pointer-mockup 800x900","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/quality/cleanup","valueSha256":"b22b4964d692197b4d2143a84f461ca6c34ff9508d9981d251fe2c9392ef1197","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":6},{"id":"control-viewport-p1-column-width","status":"passed","settled":true,"durationMs":5}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"P1 pointer-mockup 800x900","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"P1 pointer-mockup 800x900","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/8/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"P1 pointer-mockup 800x900","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/durationMs","valueSha256":"f766456ab1966f4b9c028e70359665b449d0fdaf55da737d43f2b2315bd277ec","matched":true,"value":4094},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"P1 pointer-mockup 800x900","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"P1 pointer-mockup 800x900","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"P1 pointer-mockup 800x900","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/8/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"P1 pointer-mockup 800x900","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/8/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"P1 pointer-mockup 800x900","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/8/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/title","valueSha256":"d42aaca6f1ce4a2ea78cbc2535a99b07fc9f7b3baac3397c6a929da23018954a","matched":true,"value":"P1 pointer-mockup 800x900"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/startedAt","valueSha256":"47cf47d296883065f0ab5fb440f6879facd491ba105be73814178941c3852084","matched":true,"value":"2026-09-09T20:04:50.473Z"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/finishedAt","valueSha256":"091ee0b808be6a6bb900a51b6d247d6152692261e4699b448e1447f0bfc79735","matched":true,"value":"2026-09-09T20:04:54.566Z"},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/contexts/0/controls","valueSha256":"109b05c15cc68865583ef980fd9df5aff1179d3e27b9be646b4435f37fc91910","matched":true,"value":[{"id":"viewport-p1-column-width","phase":"normal","at":"2026-09-09T20:04:51.686Z","pages":[{"page":"viewport-context-1/page-1","documentId":"F87CDC7C12F8C9363C9E29FA2F858970"}]},{"id":"viewport-p1-column-width","phase":"inject-started","at":"2026-09-09T20:04:51.686Z","pages":[{"page":"viewport-context-1/page-1","documentId":"F87CDC7C12F8C9363C9E29FA2F858970"}]},{"id":"viewport-p1-column-width","phase":"inject-finished","at":"2026-09-09T20:04:51.711Z","pages":[{"page":"viewport-context-1/page-1","documentId":"F87CDC7C12F8C9363C9E29FA2F858970"}]},{"id":"viewport-p1-column-width","phase":"negative","at":"2026-09-09T20:04:51.713Z","pages":[{"page":"viewport-context-1/page-1","documentId":"F87CDC7C12F8C9363C9E29FA2F858970"}]},{"id":"viewport-p1-column-width","phase":"restore-started","at":"2026-09-09T20:04:51.713Z","pages":[{"page":"viewport-context-1/page-1","documentId":"F87CDC7C12F8C9363C9E29FA2F858970"}]},{"id":"viewport-p1-column-width","phase":"restore-finished","at":"2026-09-09T20:04:51.717Z","pages":[{"page":"viewport-context-1/page-1","documentId":"F87CDC7C12F8C9363C9E29FA2F858970"}]},{"id":"viewport-p1-column-width","phase":"restored","at":"2026-09-09T20:04:51.721Z","pages":[{"page":"viewport-context-1/page-1","documentId":"F87CDC7C12F8C9363C9E29FA2F858970"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"268749fc89c69456189e3e7a224b436ef4d4a9dd8f62ca873a0788145338db63","matched":true,"value":[{"frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"D384AEEC49EA651EA466B92CAC5498A0","path":"blank","kind":"initial","sequence":1},{"frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"P1 pointer-mockup 800x900","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"7c32484d1fa8dc38ff056de70d6d35881b2dc75334bf6fd4cd745975ef0345d0","matched":true,"value":[{"id":"1","protocolId":"F87CDC7C12F8C9363C9E29FA2F858970","method":"GET","path":"/","resourceType":"Document","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125370.22399999,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81125378.696,"settledSequence":5},{"id":"2","protocolId":"96212.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125573.50899999,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81125589.51799999,"settledSequence":17},{"id":"3","protocolId":"96212.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125573.925,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81125589.933,"settledSequence":18},{"id":"4","protocolId":"96212.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125574.253,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81125588.522,"settledSequence":16},{"id":"5","protocolId":"96212.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125587.786,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":23,"settledAtMs":81125596.926,"settledSequence":26},{"id":"6","protocolId":"96212.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125588.199,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":25,"settledAtMs":81125598.66600001,"settledSequence":28},{"id":"7","protocolId":"96212.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125588.458,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":24,"settledAtMs":81125597.613,"settledSequence":27},{"id":"8","protocolId":"96212.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125597.97,"startedSequence":19,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81125614.988,"settledSequence":35},{"id":"9","protocolId":"96212.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125598.27499999,"startedSequence":20,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81125616.684,"settledSequence":36},{"id":"10","protocolId":"96212.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125598.54599999,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81125619.815,"settledSequence":37},{"id":"11","protocolId":"96212.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125601.174,"startedSequence":22,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81125612.875,"settledSequence":34},{"id":"12","protocolId":"96212.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125653.052,"startedSequence":32,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81125660.606,"settledSequence":40},{"id":"13","protocolId":"96212.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125735.266,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81125743.057,"settledSequence":44},{"id":"14","protocolId":"96212.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125737.644,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81125744.613,"settledSequence":45},{"id":"15","protocolId":"96212.82","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125785.00299999,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":58,"settledAtMs":81126544.871,"settledSequence":59},{"id":"16","protocolId":"96212.83","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125790.036,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81125802.479,"settledSequence":49},{"id":"17","protocolId":"96212.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125808.876,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81125830.703,"settledSequence":52},{"id":"18","protocolId":"96212.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81125835.75,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81125849.658,"settledSequence":55},{"id":"19","protocolId":"96212.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81126533.353,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81126551.59899999,"settledSequence":62},{"id":"20","protocolId":"96212.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81126533.639,"startedSequence":57,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":61,"settledAtMs":81126551.828,"settledSequence":63},{"id":"21","protocolId":"96212.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81127398.903,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81127410.836,"settledSequence":66},{"id":"22","protocolId":"96212.89","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81128077.513,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81128087.11500001,"settledSequence":69},{"id":"23","protocolId":"96212.90","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81128673.337,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81128749.06400001,"settledSequence":75},{"id":"24","protocolId":"96212.91","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"2D5C9F44F7EACD112F1D79B3694B0756","documentId":"F87CDC7C12F8C9363C9E29FA2F858970","startedAtMs":81128673.784,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":72,"settledAtMs":81128686.234,"settledSequence":73}]},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"P1 pointer-mockup 800x900","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"6a9718bb1e4015bea90180aebfb68d094f137acfa42d48596f3f88b47dcab4ca","matched":true,"value":{"sequence":76,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"P1 pointer-mockup 800x900","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/18/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6d435cda9326df2fa75a124f8892da015124aaa0767eb6b82867c9537fcba150","matched":true,"value":{"status":"completed","closeSequence":76,"startedSequence":77,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":78}},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"D1 desktop 1440x900","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"D1 desktop 1440x900","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"D1 desktop 1440x900","explanation":"1 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/checkpoints","valueSha256":"c58c109cc1bcd0b040272937b45d7566f532199ba10f3e73f0b1731c3906f60d","matched":true,"value":[{"id":"desktop geometry","passed":true,"assertions":3}]},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"D1 desktop 1440x900","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"D1 desktop 1440x900","explanation":"Source scope: D1 desktop의 zoom 계약값·하한에 따른 overflow·비투명 배경을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/steps/18","valueSha256":"bef5ad4b5439b88029e1f7d371f9827af6cc6363eb55cfca264c59c586dd13af","matched":true,"value":{"index":18,"parent":null,"category":"test.step","title":"desktop geometry","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":245,"column":7},"pollSampleLocations":null,"started":8725,"finished":8748,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"D1 desktop 1440x900","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/controls/0/normalActual","valueSha256":"a9b57654e38dc44d65609b61a834a64c953a8240483bf91d3b3162b430572f7a","matched":true,"value":0.7527443805541035},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"D1 desktop 1440x900","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/controls/0/negativeActual","valueSha256":"e29a6ec24ea4e24143739b6d8e348e9d3309e8ba5b3372c2fcfe8156ed86a396","matched":true,"value":0.8777443805541035},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"D1 desktop 1440x900","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/controls/0/restoredActual","valueSha256":"a9b57654e38dc44d65609b61a834a64c953a8240483bf91d3b3162b430572f7a","matched":true,"value":0.7527443805541035},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"D1 desktop 1440x900","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"D1 desktop 1440x900","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/controls/0","valueSha256":"75fcdd72007152ec23e79323eb0decf73bcefa233e30ee14f63ca1212d478581","matched":true,"value":{"id":"viewport-d1-desktop-zoom","description":"실제 데스크톱 zoom이 해당 viewport의 계약값과 달라지는 결함","boundary":"desktop geometry","status":"passed","expected":0.7527443805541035,"comparator":{"kind":"closeTo","digits":3},"normalActual":0.7527443805541035,"normal":{"matched":true},"negativeActual":0.8777443805541035,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":0.7527443805541035,"restored":{"matched":true},"durationMs":60}},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D1 desktop 1440x900","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/quality/cleanup","valueSha256":"c30d9dc7cc3e7c19cd12df003b8e4975c27e06b003b5a38b7a6645a6e9281b03","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":6},{"id":"control-viewport-d1-desktop-zoom","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D1 desktop 1440x900","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"D1 desktop 1440x900","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/10/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"D1 desktop 1440x900","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/durationMs","valueSha256":"6165d33e490f91dbf808b194904d4f07c550d5e3a19c9e776e0c895136ec9fa2","matched":true,"value":749},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D1 desktop 1440x900","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D1 desktop 1440x900","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D1 desktop 1440x900","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/10/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D1 desktop 1440x900","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/10/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D1 desktop 1440x900","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/10/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/title","valueSha256":"6d5774d3b9d053f40245eefb1b4f1ab5003518442075303b4e08b8c391be8c02","matched":true,"value":"D1 desktop 1440x900"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/startedAt","valueSha256":"f6c4a9f31707ecaee1d1feccaac94152f3485a79860cfb9d0d13dbdb1a864cfc","matched":true,"value":"2026-09-09T20:04:56.402Z"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/finishedAt","valueSha256":"ae981e5f64cab51adfad41bc10485c092b847dc2ca1078e6890e04647e77a89b","matched":true,"value":"2026-09-09T20:04:57.149Z"},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/contexts/0/controls","valueSha256":"912fd5bcdff2841a12d28bce795c3d188299d5c55b8c89f59ebe44cf02d16108","matched":true,"value":[{"id":"viewport-d1-desktop-zoom","phase":"normal","at":"2026-09-09T20:04:57.076Z","pages":[{"page":"viewport-context-1/page-1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522"}]},{"id":"viewport-d1-desktop-zoom","phase":"inject-started","at":"2026-09-09T20:04:57.076Z","pages":[{"page":"viewport-context-1/page-1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522"}]},{"id":"viewport-d1-desktop-zoom","phase":"inject-finished","at":"2026-09-09T20:04:57.098Z","pages":[{"page":"viewport-context-1/page-1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522"}]},{"id":"viewport-d1-desktop-zoom","phase":"negative","at":"2026-09-09T20:04:57.121Z","pages":[{"page":"viewport-context-1/page-1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522"}]},{"id":"viewport-d1-desktop-zoom","phase":"restore-started","at":"2026-09-09T20:04:57.121Z","pages":[{"page":"viewport-context-1/page-1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522"}]},{"id":"viewport-d1-desktop-zoom","phase":"restore-finished","at":"2026-09-09T20:04:57.124Z","pages":[{"page":"viewport-context-1/page-1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522"}]},{"id":"viewport-d1-desktop-zoom","phase":"restored","at":"2026-09-09T20:04:57.134Z","pages":[{"page":"viewport-context-1/page-1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"06f298d6f9b2d619b81729c8544aa6cf49ef5474b074f433aa6836becc1d5366","matched":true,"value":[{"frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"4FA7DCC70FD7BBACDFF99198A1B1E793","path":"blank","kind":"initial","sequence":1},{"frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D1 desktop 1440x900","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"940013e53c232c33e813378332422ea5eced6cce5f7cbc32ec55d4b8af603e59","matched":true,"value":[{"id":"1","protocolId":"B95A7BE4F84EE3E12101A2E9B2151522","method":"GET","path":"/","resourceType":"Document","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131297.217,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81131302.39899999,"settledSequence":5},{"id":"2","protocolId":"92968.29","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131469.985,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81131480.381,"settledSequence":16},{"id":"3","protocolId":"92968.30","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131470.219,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81131480.612,"settledSequence":17},{"id":"4","protocolId":"92968.31","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131470.448,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81131481.646,"settledSequence":18},{"id":"5","protocolId":"92968.32","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131481.27800001,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":23,"settledAtMs":81131488.483,"settledSequence":26},{"id":"6","protocolId":"92968.33","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131481.64899999,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":25,"settledAtMs":81131490.26200001,"settledSequence":28},{"id":"7","protocolId":"92968.34","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131481.933,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":24,"settledAtMs":81131489.788,"settledSequence":27},{"id":"8","protocolId":"92968.35","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131490.057,"startedSequence":19,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81131507.818,"settledSequence":33},{"id":"9","protocolId":"92968.36","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131490.40900001,"startedSequence":20,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81131519.138,"settledSequence":37},{"id":"10","protocolId":"92968.37","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131490.733,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81131512.817,"settledSequence":35},{"id":"11","protocolId":"92968.38","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131502.19299999,"startedSequence":22,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81131510.62,"settledSequence":34},{"id":"12","protocolId":"92968.40","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131520.789,"startedSequence":32,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81131528.294,"settledSequence":39},{"id":"13","protocolId":"92968.41","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131589.00999999,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81131595.747,"settledSequence":45},{"id":"14","protocolId":"92968.42","method":"POST","path":"/rest/v1/rpc/get_home_year_activity","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131589.81,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":44,"settledAtMs":81131596.971,"settledSequence":46},{"id":"15","protocolId":"92968.43","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131598.428,"startedSequence":42,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":47,"settledAtMs":81131604.38999999,"settledSequence":48},{"id":"16","protocolId":"92968.44","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"38C9E0E2048F61659C8BD3AF68BB25E1","documentId":"B95A7BE4F84EE3E12101A2E9B2151522","startedAtMs":81131637.002,"startedSequence":49,"responseStatus":null,"terminal":null,"orphanedBy":null}]},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D1 desktop 1440x900","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"e9ffb59f956cc52872ee07d375ddc6574de12d06dccaefeaf31d9658b34c73c1","matched":true,"value":{"sequence":50,"pendingRequestIds":["16"]}},{"id":"viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D1 desktop 1440x900","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/20/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"5eb6130078d0d1f685654121301882689974cac41c641564d29d8f331d9218eb","matched":true,"value":{"status":"completed","closeSequence":50,"startedSequence":51,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":52}},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"D3 desktop 1280x720","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"D3 desktop 1280x720","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"D3 desktop 1280x720","explanation":"1 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/checkpoints","valueSha256":"c58c109cc1bcd0b040272937b45d7566f532199ba10f3e73f0b1731c3906f60d","matched":true,"value":[{"id":"desktop geometry","passed":true,"assertions":3}]},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"D3 desktop 1280x720","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"D3 desktop 1280x720","explanation":"Source scope: D3 desktop의 zoom 계약값·하한에 따른 overflow·비투명 배경을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/18","valueSha256":"acbc63528987ad2b3dfb196993b67c52eeaadf2f15588402a385416b82768642","matched":true,"value":{"index":18,"parent":null,"category":"test.step","title":"desktop geometry","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":245,"column":7},"pollSampleLocations":null,"started":8803,"finished":8826,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"D3 desktop 1280x720","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/controls/0/normalActual","valueSha256":"973b372a514f91db8219fef585cdf81b09196afd7948f5fb1e29c2016dd995a0","matched":true,"value":0.7},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"D3 desktop 1280x720","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/controls/0/negativeActual","valueSha256":"6f48e1706fda86e5af5d1f6fe85401092d4e2fc3343afb716da611c2042e6892","matched":true,"value":0.825},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"D3 desktop 1280x720","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/controls/0/restoredActual","valueSha256":"973b372a514f91db8219fef585cdf81b09196afd7948f5fb1e29c2016dd995a0","matched":true,"value":0.7},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"D3 desktop 1280x720","explanation":"동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. Scope limit: CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"D3 desktop 1280x720","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/controls/0","valueSha256":"f18999821180607b2636c9c54e6769ecb5fdb3967638e2bf29b235474ad18e89","matched":true,"value":{"id":"viewport-d3-desktop-zoom","description":"실제 데스크톱 zoom이 해당 viewport의 계약값과 달라지는 결함","boundary":"desktop geometry","status":"passed","expected":0.7,"comparator":{"kind":"closeTo","digits":3},"normalActual":0.7,"normal":{"matched":true},"negativeActual":0.825,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":0.7,"restored":{"matched":true},"durationMs":80}},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D3 desktop 1280x720","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/cleanup","valueSha256":"0ed8e2b172ac95b0a90ac6eb39a3b39236c2c901ceb45e33ba86d19109a189dd","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":8},{"id":"control-viewport-d3-desktop-zoom","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D3 desktop 1280x720","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"D3 desktop 1280x720","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/11/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"D3 desktop 1280x720","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/durationMs","valueSha256":"c2a181d8178a9f753b013fc4bb892ceeb5dc5bcb763352610844b93341ea52a4","matched":true,"value":734},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D3 desktop 1280x720","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D3 desktop 1280x720","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D3 desktop 1280x720","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/11/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D3 desktop 1280x720","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/11/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"D3 desktop 1280x720","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/11/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/title","valueSha256":"a2ca9f4922c43fe3a74d1a0aff447f1a168824ef487471902e45c5c7759a04d5","matched":true,"value":"D3 desktop 1280x720"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/startedAt","valueSha256":"b6a8e4136d96b2618ac0dab727c81946cec53d80922a25790e0b3507d89a578c","matched":true,"value":"2026-09-09T20:04:57.162Z"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/finishedAt","valueSha256":"15cd84fb64e06c35da20d67a7cdbedb41575edc5cfc09157568348bc71490c54","matched":true,"value":"2026-09-09T20:04:57.895Z"},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/contexts/0/controls","valueSha256":"eab26eba573c19c7e9e2f104f04ecbb76128cd168b20ebc0b3f2a0ede6b36beb","matched":true,"value":[{"id":"viewport-d3-desktop-zoom","phase":"normal","at":"2026-09-09T20:04:57.798Z","pages":[{"page":"viewport-context-1/page-1","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B"}]},{"id":"viewport-d3-desktop-zoom","phase":"inject-started","at":"2026-09-09T20:04:57.799Z","pages":[{"page":"viewport-context-1/page-1","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B"}]},{"id":"viewport-d3-desktop-zoom","phase":"inject-finished","at":"2026-09-09T20:04:57.823Z","pages":[{"page":"viewport-context-1/page-1","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B"}]},{"id":"viewport-d3-desktop-zoom","phase":"negative","at":"2026-09-09T20:04:57.859Z","pages":[{"page":"viewport-context-1/page-1","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B"}]},{"id":"viewport-d3-desktop-zoom","phase":"restore-started","at":"2026-09-09T20:04:57.859Z","pages":[{"page":"viewport-context-1/page-1","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B"}]},{"id":"viewport-d3-desktop-zoom","phase":"restore-finished","at":"2026-09-09T20:04:57.862Z","pages":[{"page":"viewport-context-1/page-1","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B"}]},{"id":"viewport-d3-desktop-zoom","phase":"restored","at":"2026-09-09T20:04:57.875Z","pages":[{"page":"viewport-context-1/page-1","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"234fa4e63f3767a48d5430f0ce13bfb64a5038780cb475e5889cae84ef299ab1","matched":true,"value":[{"frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"70BE8AE284F7664024E3516E1C9B18F3","path":"blank","kind":"initial","sequence":1},{"frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"D3 desktop 1280x720","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"e60bc3effbc8e39725a241c8ab53715a95d1ed8acb4ff7920abe3a8933cfb06c","matched":true,"value":[{"id":"1","protocolId":"D6C883B7E36A1B481FA99F42DB4BC73B","method":"GET","path":"/","resourceType":"Document","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132043.854,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81132048.255,"settledSequence":5},{"id":"2","protocolId":"75636.29","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132208.11999999,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81132219.469,"settledSequence":16},{"id":"3","protocolId":"75636.30","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132208.33199999,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81132218.61500001,"settledSequence":15},{"id":"4","protocolId":"75636.31","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132208.545,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81132222.744,"settledSequence":21},{"id":"5","protocolId":"75636.32","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132219.54,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81132227.183,"settledSequence":22},{"id":"6","protocolId":"75636.33","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132219.963,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":20,"settledAtMs":81132229.431,"settledSequence":24},{"id":"7","protocolId":"75636.34","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132220.308,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81132228.751,"settledSequence":23},{"id":"8","protocolId":"75636.35","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132238.416,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81132254.56,"settledSequence":33},{"id":"9","protocolId":"75636.36","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132238.864,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81132257.065,"settledSequence":34},{"id":"10","protocolId":"75636.37","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132239.189,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81132257.49800001,"settledSequence":35},{"id":"11","protocolId":"75636.38","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132244.63499999,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81132269.81199999,"settledSequence":39},{"id":"12","protocolId":"75636.40","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132255.86,"startedSequence":29,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81132263.10900001,"settledSequence":37},{"id":"13","protocolId":"75636.41","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132328.902,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81132338.096,"settledSequence":46},{"id":"14","protocolId":"75636.42","method":"POST","path":"/rest/v1/rpc/get_home_year_activity","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132329.82699999,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":44,"settledAtMs":81132338.39299999,"settledSequence":47},{"id":"15","protocolId":"75636.43","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132331.406,"startedSequence":42,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":45,"settledAtMs":81132339.043,"settledSequence":48},{"id":"16","protocolId":"75636.44","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"DD3008CC3F5D109E92CA97F9194F7461","documentId":"D6C883B7E36A1B481FA99F42DB4BC73B","startedAtMs":81132378.405,"startedSequence":49,"responseStatus":null,"terminal":null,"orphanedBy":null}]},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D3 desktop 1280x720","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"e9ffb59f956cc52872ee07d375ddc6574de12d06dccaefeaf31d9658b34c73c1","matched":true,"value":{"sequence":50,"pendingRequestIds":["16"]}},{"id":"viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"D3 desktop 1280x720","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"5eb6130078d0d1f685654121301882689974cac41c641564d29d8f331d9218eb","matched":true,"value":{"status":"completed","closeSequence":50,"startedSequence":51,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":52}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"2 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/checkpoints","valueSha256":"a9001d50abe91e7cacbdeefb9c06b0a790944d4f1bc5c0d86d8572358cb0f247","matched":true,"value":[{"id":"comment input geometry","passed":true,"assertions":6},{"id":"comment sheet closes and restores tabbar","passed":true,"assertions":1}]},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Source scope: 390x844 touch 화면에서 댓글 입력 행의 탭바 비중첩·화면 내 위치·hit test와 시트 닫힘 뒤 탭바 복원을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/steps/7","valueSha256":"6f3abf954d1e34f846101717c6d5395e1571e04fd96f5a76895ea82cb3ef8b29","matched":true,"value":{"index":7,"parent":null,"category":"test.step","title":"comment input geometry","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":214,"column":5},"pollSampleLocations":null,"started":8567,"finished":8662,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Source scope: 390x844 touch 화면에서 댓글 입력 행의 탭바 비중첩·화면 내 위치·hit test와 시트 닫힘 뒤 탭바 복원을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/steps/55","valueSha256":"8ce5143ac1548efbd95513c25a9fc98bc6ac28d78090159f3e67ba4b14806a58","matched":true,"value":{"index":55,"parent":null,"category":"test.step","title":"comment sheet closes and restores tabbar","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":233,"column":5},"pollSampleLocations":null,"started":8663,"finished":8670,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"실제 댓글 입력 form을 화면 높이 두 배 아래로 옮겨 동일 readCommentGeometry().formInViewport가 true에서 false로 바뀌는지 검사한다. Scope limit: 입력 행의 화면 밖 이탈을 대표한다. 탭바 display 자체를 되돌리는 별도 중첩 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/controls/0/normalActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"실제 댓글 입력 form을 화면 높이 두 배 아래로 옮겨 동일 readCommentGeometry().formInViewport가 true에서 false로 바뀌는지 검사한다. Scope limit: 입력 행의 화면 밖 이탈을 대표한다. 탭바 display 자체를 되돌리는 별도 중첩 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/controls/0/negativeActual","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"실제 댓글 입력 form을 화면 높이 두 배 아래로 옮겨 동일 readCommentGeometry().formInViewport가 true에서 false로 바뀌는지 검사한다. Scope limit: 입력 행의 화면 밖 이탈을 대표한다. 탭바 display 자체를 되돌리는 별도 중첩 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/controls/0/restoredActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"실제 댓글 입력 form을 화면 높이 두 배 아래로 옮겨 동일 readCommentGeometry().formInViewport가 true에서 false로 바뀌는지 검사한다. Scope limit: 입력 행의 화면 밖 이탈을 대표한다. 탭바 display 자체를 되돌리는 별도 중첩 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/controls/0","valueSha256":"28d4f26e384d682e177ae4e543a5b88bcab647f324a7f51abd7c5b4650666506","matched":true,"value":{"id":"viewport-comment-input-outside","description":"댓글 입력 행이 실제 화면 밖으로 밀려나는 결함","boundary":"comment input geometry","status":"passed","expected":true,"comparator":{"kind":"deepEqual"},"normalActual":true,"normal":{"matched":true},"negativeActual":false,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":true,"restored":{"matched":true},"durationMs":27}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/quality/cleanup","valueSha256":"8ca877586ab7ded3e65a2889617e76fef03a1f643770949391695bcc7b1ca799","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":10},{"id":"control-viewport-comment-input-outside","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/fixture-cleanup-afterAll-139","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"This actual shared suite afterAll at e2e/viewport-matrix.spec.mjs:139 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/21/quality/steps/39","valueSha256":"335421be8784bcbf7ed62d0491e7b64ba3c699ea26c4f7bb562470a66344059b","matched":true,"value":{"index":39,"parent":30,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\viewport-matrix.spec.mjs","line":139,"column":8},"pollSampleLocations":null,"started":8844,"finished":8845,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/9/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/durationMs","valueSha256":"a7bb4472588958f3423a69c1f8a922f367b3c8e5fc72dfc8d138f646943d0b44","matched":true,"value":1811},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/9/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/9/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/5/suites/0/specs/9/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/title","valueSha256":"236f81aa848d0cda1f723ea236cb8605d633ba5b1f25776904cc267a6e584076","matched":true,"value":"comment sheet: input row never overlaps the tabbar band"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/startedAt","valueSha256":"62598d22b794f7abe1ece9e735ef22c7bf9790da3efa1c5b00611bdd35b5a6b8","matched":true,"value":"2026-09-09T20:04:54.577Z"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/finishedAt","valueSha256":"8b814f782ee075be3dfdd33af261b19780b4b67555af134c50dd69ca0566f84a","matched":true,"value":"2026-09-09T20:04:56.387Z"},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/contexts/0/controls","valueSha256":"84a8147e4467d15a4579c716e4d70cdc71fed0e35e1032f2a2efbf8709e4fd3f","matched":true,"value":[{"id":"viewport-comment-input-outside","phase":"normal","at":"2026-09-09T20:04:56.293Z","pages":[{"page":"viewport-context-1/page-1","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA"}]},{"id":"viewport-comment-input-outside","phase":"inject-started","at":"2026-09-09T20:04:56.293Z","pages":[{"page":"viewport-context-1/page-1","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA"}]},{"id":"viewport-comment-input-outside","phase":"inject-finished","at":"2026-09-09T20:04:56.312Z","pages":[{"page":"viewport-context-1/page-1","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA"}]},{"id":"viewport-comment-input-outside","phase":"negative","at":"2026-09-09T20:04:56.314Z","pages":[{"page":"viewport-context-1/page-1","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA"}]},{"id":"viewport-comment-input-outside","phase":"restore-started","at":"2026-09-09T20:04:56.314Z","pages":[{"page":"viewport-context-1/page-1","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA"}]},{"id":"viewport-comment-input-outside","phase":"restore-finished","at":"2026-09-09T20:04:56.316Z","pages":[{"page":"viewport-context-1/page-1","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA"}]},{"id":"viewport-comment-input-outside","phase":"restored","at":"2026-09-09T20:04:56.318Z","pages":[{"page":"viewport-context-1/page-1","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"e988cc24d4c4fa5b0a4c1483fd7fd8a6c8a6c401edeaec4fd9ad8543b7d33e5e","matched":true,"value":[{"frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9B7D72FEC2C724D599FB90E98167A012","path":"blank","kind":"initial","sequence":1},{"frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"aceada3079dda97f126b32a2553c308fe5ce6fd049e19cee1836e5461620bfa5","matched":true,"value":[{"id":"1","protocolId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","method":"GET","path":"/","resourceType":"Document","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129446.375,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81129453.647,"settledSequence":5},{"id":"2","protocolId":"66948.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129625.472,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81129635.51799999,"settledSequence":17},{"id":"3","protocolId":"66948.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129625.75999999,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81129634.692,"settledSequence":15},{"id":"4","protocolId":"66948.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129626.035,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81129636.403,"settledSequence":21},{"id":"5","protocolId":"66948.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129634.987,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81129641.43800001,"settledSequence":22},{"id":"6","protocolId":"66948.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129635.30399999,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":20,"settledAtMs":81129643.41800001,"settledSequence":24},{"id":"7","protocolId":"66948.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129635.52,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81129642.14,"settledSequence":23},{"id":"8","protocolId":"66948.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129650.771,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81129665.517,"settledSequence":35},{"id":"9","protocolId":"66948.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129651.003,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81129666.775,"settledSequence":36},{"id":"10","protocolId":"66948.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129651.257,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81129667.782,"settledSequence":37},{"id":"11","protocolId":"66948.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129654.848,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81129661.833,"settledSequence":34},{"id":"12","protocolId":"66948.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129672.609,"startedSequence":33,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81129678.599,"settledSequence":39},{"id":"13","protocolId":"66948.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129739.676,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81129747.184,"settledSequence":44},{"id":"14","protocolId":"66948.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129742.06400001,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81129747.892,"settledSequence":45},{"id":"15","protocolId":"66948.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129792.6,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81129803.79599999,"settledSequence":49},{"id":"16","protocolId":"66948.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129793.191,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81130443.23,"settledSequence":63},{"id":"17","protocolId":"66948.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129811.445,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81129833.933,"settledSequence":52},{"id":"18","protocolId":"66948.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81129841.081,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81129858.271,"settledSequence":55},{"id":"19","protocolId":"66948.86","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81130314.265,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":57,"settledAtMs":81130320.54,"settledSequence":58},{"id":"20","protocolId":"66948.87","method":"POST","path":"/rest/v1/rpc/list_session_comments_v1","resourceType":"Fetch","frameId":"41398B9A5970D5EEFE1671554E92648D","documentId":"9D5DF7F50D3D2639FA4C4B200C0CD9DA","startedAtMs":81130382.58600001,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81130390.941,"settledSequence":61}]},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"a41da4c238d28cb328bd59069e3e3162957f0a855942f354f4efa968afb5f8e9","matched":true,"value":{"sequence":64,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"comment sheet: input row never overlaps the tabbar band","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/19/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"522c385a35120f112a927fbb969550ddc2f34d9dd1c344f062c385ef0caf1f93","matched":true,"value":{"status":"completed","closeSequence":64,"startedSequence":65,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":66}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"workout dock states + tabbar + brand row geometry","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"workout dock states + tabbar + brand row geometry","explanation":"4 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/checkpoints","valueSha256":"852fe94931a652d91287b4f5aad772f24e20a58240f6c6d3706921879bf2c69e","matched":true,"value":[{"id":"tabbar + brand row: per-tab geometry at safe 0/34 (bottom) and 0/47 (top)","passed":true,"assertions":74},{"id":"drawer → records-tool layer over home: chrome channel + clearance + ground display","passed":true,"assertions":15},{"id":"drive live workout to the 5 dock states","passed":true,"assertions":78},{"id":"5-state total height identity (C2')","passed":true,"assertions":4}]},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Source scope: 운동 도크 5상태의 바닥 밀착·높이 항등, safe-bottom 0/34 및 safe-top 0/47 추종, 탭바·브랜드 행·기록 도구 스택의 geometry 계약을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/steps/25","valueSha256":"1de755194f464c69248fe4e4e4b7452d7f2852df135d3ae9a0d4328beb91815d","matched":true,"value":{"index":25,"parent":null,"category":"test.step","title":"tabbar + brand row: per-tab geometry at safe 0/34 (bottom) and 0/47 (top)","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\dock-geometry.spec.mjs","line":206,"column":5},"pollSampleLocations":null,"started":2327,"finished":2906,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Source scope: 운동 도크 5상태의 바닥 밀착·높이 항등, safe-bottom 0/34 및 safe-top 0/47 추종, 탭바·브랜드 행·기록 도구 스택의 geometry 계약을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/steps/315","valueSha256":"b7cc17cbdc1bca20b215ad78a5a7439ef3f2d9808e274310ac54bf9a88d06378","matched":true,"value":{"index":315,"parent":null,"category":"test.step","title":"drawer → records-tool layer over home: chrome channel + clearance + ground display","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\dock-geometry.spec.mjs","line":272,"column":5},"pollSampleLocations":null,"started":2907,"finished":3014,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Source scope: 운동 도크 5상태의 바닥 밀착·높이 항등, safe-bottom 0/34 및 safe-top 0/47 추종, 탭바·브랜드 행·기록 도구 스택의 geometry 계약을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/steps/369","valueSha256":"929d4bcc159027857809b1a8e4fe1a3762bbe844db5adceed0942b3a3a8070d2","matched":true,"value":{"index":369,"parent":null,"category":"test.step","title":"drive live workout to the 5 dock states","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\dock-geometry.spec.mjs","line":294,"column":5},"pollSampleLocations":null,"started":3015,"finished":3584,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Source scope: 운동 도크 5상태의 바닥 밀착·높이 항등, safe-bottom 0/34 및 safe-top 0/47 추종, 탭바·브랜드 행·기록 도구 스택의 geometry 계약을 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/steps/654","valueSha256":"c27c04dd792c7f3853c920eead53070465f465a06e71695fc3664cb3f054bd6d","matched":true,"value":{"index":654,"parent":null,"category":"test.step","title":"5-state total height identity (C2')","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\dock-geometry.spec.mjs","line":342,"column":7},"pollSampleLocations":null,"started":3585,"finished":3594,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"workout dock states + tabbar + brand row geometry","explanation":"실제 review dock을 32px 위로 옮겨 기존 measureDock().bottomFlush와 true 비교가 불일치하는지 검사한다. Scope limit: review dock 바닥 간격의 대표 결함이다. 모든 safe 계산/브랜드 정렬 mutant를 넣은 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/controls/0/normalActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"workout dock states + tabbar + brand row geometry","explanation":"실제 review dock을 32px 위로 옮겨 기존 measureDock().bottomFlush와 true 비교가 불일치하는지 검사한다. Scope limit: review dock 바닥 간격의 대표 결함이다. 모든 safe 계산/브랜드 정렬 mutant를 넣은 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/controls/0/negativeActual","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"workout dock states + tabbar + brand row geometry","explanation":"실제 review dock을 32px 위로 옮겨 기존 measureDock().bottomFlush와 true 비교가 불일치하는지 검사한다. Scope limit: review dock 바닥 간격의 대표 결함이다. 모든 safe 계산/브랜드 정렬 mutant를 넣은 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/controls/0/restoredActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"workout dock states + tabbar + brand row geometry","explanation":"실제 review dock을 32px 위로 옮겨 기존 measureDock().bottomFlush와 true 비교가 불일치하는지 검사한다. Scope limit: review dock 바닥 간격의 대표 결함이다. 모든 safe 계산/브랜드 정렬 mutant를 넣은 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/controls/0","valueSha256":"1938e6a282e884059202bd863b2cc8467b8702ece31ee356d784013fcb184551","matched":true,"value":{"id":"viewport-dock-bottom-gap","description":"운동 검토 도크가 화면 바닥에 붙지 않고 위로 떠 있는 결함","boundary":"drive live workout to the 5 dock states","status":"passed","expected":true,"comparator":{"kind":"deepEqual"},"normalActual":true,"normal":{"matched":true},"negativeActual":false,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":true,"restored":{"matched":true},"durationMs":29}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/cleanup","valueSha256":"3042443befd66cfdf69c55aa858b818ae3ee66c51beed394b4dc3c13d7661130","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":6},{"id":"control-viewport-dock-bottom-gap","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/fixture-cleanup-afterAll-73","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"workout dock states + tabbar + brand row geometry","explanation":"This actual shared suite afterAll at e2e/dock-geometry.spec.mjs:73 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/quality/steps/668","valueSha256":"531efad7bd7d6ebb57a1afd0fa8ce3c6e265bdd5e17d051f801f98c7e2e8570f","matched":true,"value":{"index":668,"parent":659,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\dock-geometry.spec.mjs","line":73,"column":8},"pollSampleLocations":null,"started":3612,"finished":3613,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"workout dock states + tabbar + brand row geometry","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/1/suites/0/specs/0/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/durationMs","valueSha256":"ec5428386afee3c3a99403b406cdb073c46a26a96624a837c47fdf144d1aa1bc","matched":true,"value":12135},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"workout dock states + tabbar + brand row geometry","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/1/suites/0/specs/0/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/1/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"workout dock states + tabbar + brand row geometry","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/1/suites/0/specs/0/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/title","valueSha256":"d1fafd9c0e47eb692df9d6d9c0353f673dce67d00fd49cc85df287ba0ec3dfb6","matched":true,"value":"workout dock states + tabbar + brand row geometry"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/startedAt","valueSha256":"dfe1a5c565ff34d5b785869505c4206d51482f5e13e1a375c1489f276e01076f","matched":true,"value":"2026-09-09T20:03:10.974Z"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/finishedAt","valueSha256":"6f95ad06cf3432f6ded056ae6f9cdbbac40938f1fd1f2acee41a3000d2378fb2","matched":true,"value":"2026-09-09T20:03:23.107Z"},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/contexts/0/controls","valueSha256":"f18e79103201fda2d5ff15ddfa4338c6b8d2a560deda349a60d6f3dce6cc5820","matched":true,"value":[{"id":"viewport-dock-bottom-gap","phase":"normal","at":"2026-09-09T20:03:23.063Z","pages":[{"page":"viewport-context-1/page-1","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0"}]},{"id":"viewport-dock-bottom-gap","phase":"inject-started","at":"2026-09-09T20:03:23.063Z","pages":[{"page":"viewport-context-1/page-1","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0"}]},{"id":"viewport-dock-bottom-gap","phase":"inject-finished","at":"2026-09-09T20:03:23.084Z","pages":[{"page":"viewport-context-1/page-1","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0"}]},{"id":"viewport-dock-bottom-gap","phase":"negative","at":"2026-09-09T20:03:23.086Z","pages":[{"page":"viewport-context-1/page-1","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0"}]},{"id":"viewport-dock-bottom-gap","phase":"restore-started","at":"2026-09-09T20:03:23.087Z","pages":[{"page":"viewport-context-1/page-1","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0"}]},{"id":"viewport-dock-bottom-gap","phase":"restore-finished","at":"2026-09-09T20:03:23.089Z","pages":[{"page":"viewport-context-1/page-1","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0"}]},{"id":"viewport-dock-bottom-gap","phase":"restored","at":"2026-09-09T20:03:23.091Z","pages":[{"page":"viewport-context-1/page-1","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"4befdb1e92656cddc29e7245f00af37e6ab4aaf896ced672700895ae0c9efd84","matched":true,"value":[{"frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"CA33A9E614942646541324BE0382D5F5","path":"blank","kind":"initial","sequence":1},{"frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"43cb180b5f25fde30a26a225f3b4b8e47220161ad22c1f99ac33709d4fdca59b","matched":true,"value":[{"id":"1","protocolId":"232FC2E0B4F3CBC52E617C09A681ABA0","method":"GET","path":"/","resourceType":"Document","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81025888.232,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81025898.20199999,"settledSequence":5},{"id":"2","protocolId":"94900.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026107.448,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81026117.70400001,"settledSequence":14},{"id":"3","protocolId":"94900.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026107.676,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81026123.426,"settledSequence":20},{"id":"4","protocolId":"94900.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026107.91000001,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81026124.234,"settledSequence":21},{"id":"5","protocolId":"94900.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026118.052,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81026127.215,"settledSequence":22},{"id":"6","protocolId":"94900.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026118.802,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81026128.086,"settledSequence":23},{"id":"7","protocolId":"94900.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026119.159,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81026129.476,"settledSequence":24},{"id":"8","protocolId":"94900.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026143.078,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81026160.857,"settledSequence":36},{"id":"9","protocolId":"94900.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026143.568,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81026157.30000001,"settledSequence":34},{"id":"10","protocolId":"94900.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026144.072,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81026166.029,"settledSequence":37},{"id":"11","protocolId":"94900.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026149.98,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81026158.927,"settledSequence":35},{"id":"12","protocolId":"94900.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026180.329,"startedSequence":33,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81026186.382,"settledSequence":40},{"id":"13","protocolId":"94900.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026239.705,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81026247.112,"settledSequence":45},{"id":"14","protocolId":"94900.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026240.99000001,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81026246.78099999,"settledSequence":44},{"id":"15","protocolId":"94900.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026294.866,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81026310.018,"settledSequence":49},{"id":"16","protocolId":"94900.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026297.55600001,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81027053.753,"settledSequence":57},{"id":"17","protocolId":"94900.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026317.55000001,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81026340.663,"settledSequence":52},{"id":"18","protocolId":"94900.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81026344.875,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81026369.13399999,"settledSequence":55},{"id":"19","protocolId":"94900.86","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81027517.582,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81027533.159,"settledSequence":63},{"id":"20","protocolId":"94900.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81027517.999,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81027532.934,"settledSequence":61},{"id":"21","protocolId":"94900.88","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81028203.31500001,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81028210.428,"settledSequence":66},{"id":"22","protocolId":"94900.89","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81029187.03899999,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81029200.444,"settledSequence":69},{"id":"23","protocolId":"94900.90","method":"POST","path":"/rest/v1/rpc/save_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"787D176DB6FB7CC58BBCBD7E7320D8B3","documentId":"232FC2E0B4F3CBC52E617C09A681ABA0","startedAtMs":81033326.822,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":71,"settledAtMs":81033353.434,"settledSequence":72}]},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"293e9220a69ec2cefec8116da0950e0ee5737f950c04258270fbd1efac7d06c9","matched":true,"value":{"sequence":73,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"workout dock states + tabbar + brand row geometry","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/1/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"4a0e20b13a3358a9ad070cd066cb83b8c5829f87d90be5aa4f88c51a89336b06","matched":true,"value":{"status":"completed","closeSequence":73,"startedSequence":74,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":75}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"35 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/checkpoints","valueSha256":"cdd0eb272a03ca610f2cac9221228f1a609055c2a7f25c0dc4c1c879b37becd8","matched":true,"value":[{"id":"surface: home safe 0","passed":true,"assertions":6},{"id":"surface: home safe 34","passed":true,"assertions":6},{"id":"surface: home-report-overlay safe 0","passed":true,"assertions":7},{"id":"surface: home-report-overlay safe 34","passed":true,"assertions":7},{"id":"surface: journal-calendar safe 0","passed":true,"assertions":6},{"id":"surface: journal-calendar safe 34","passed":true,"assertions":6},{"id":"surface: journal-day safe 0","passed":true,"assertions":11},{"id":"surface: journal-day safe 34","passed":true,"assertions":11},{"id":"surface: journal-month safe 0","passed":true,"assertions":6},{"id":"surface: journal-month safe 34","passed":true,"assertions":9},{"id":"surface: journal-session safe 0","passed":true,"assertions":9},{"id":"surface: journal-session safe 34","passed":true,"assertions":9},{"id":"surface: feed safe 0","passed":true,"assertions":9},{"id":"surface: feed safe 34","passed":true,"assertions":9},{"id":"surface: feed-session safe 0","passed":true,"assertions":6},{"id":"surface: feed-session safe 34","passed":true,"assertions":6},{"id":"surface: group-list safe 0","passed":true,"assertions":5},{"id":"surface: group-list safe 34","passed":true,"assertions":5},{"id":"surface: group-board safe 0","passed":true,"assertions":6},{"id":"surface: group-board safe 34","passed":true,"assertions":6},{"id":"surface: group-lounge safe 0","passed":true,"assertions":6},{"id":"surface: group-lounge safe 34","passed":true,"assertions":6},{"id":"surface: report safe 0","passed":true,"assertions":8},{"id":"surface: report safe 34","passed":true,"assertions":8},{"id":"surface: records-layer safe 0","passed":true,"assertions":6},{"id":"surface: records-layer safe 34","passed":true,"assertions":6},{"id":"surface: pr-detail safe 0","passed":true,"assertions":9},{"id":"surface: pr-detail safe 34","passed":true,"assertions":9},{"id":"surface: pr-tape safe 0","passed":true,"assertions":6},{"id":"surface: pr-tape safe 34","passed":true,"assertions":6},{"id":"surface: friend-journal safe 0","passed":true,"assertions":6},{"id":"surface: friend-journal safe 34","passed":true,"assertions":6},{"id":"surface: friend-scope safe 0","passed":true,"assertions":6},{"id":"surface: friend-scope safe 34","passed":true,"assertions":6},{"id":"required surface identities and safe values","passed":true,"assertions":18}]},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/29","valueSha256":"bd785cae45a40609c3e824a6b2ece817a6651048b4f0150310a6a7471f675af0","matched":true,"value":{"index":29,"parent":null,"category":"test.step","title":"surface: home safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":59,"finished":88,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/44","valueSha256":"40807bdbd8cf081dec9213d0b0a234cc7ea9fb981a9838682318f30c1223adfa","matched":true,"value":{"index":44,"parent":null,"category":"test.step","title":"surface: home safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":89,"finished":118,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/84","valueSha256":"985c7b5d27b5b559410775ae51aeb0dd85aa8741aa5a6d3b7ac88dbe722b7b82","matched":true,"value":{"index":84,"parent":null,"category":"test.step","title":"surface: home-report-overlay safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":169,"finished":200,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/100","valueSha256":"5397c1d5a88611dd5d858ee95d72c82edacd1e8383a7488c34bcc380a1a74434","matched":true,"value":{"index":100,"parent":null,"category":"test.step","title":"surface: home-report-overlay safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":201,"finished":232,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/216","valueSha256":"98e9c46a02b8850debb3dae7c29ae38f85e4b781a662318109a7e08799df2584","matched":true,"value":{"index":216,"parent":null,"category":"test.step","title":"surface: journal-calendar safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":433,"finished":462,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-5","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/231","valueSha256":"00946af7d66065fd52ca03ae1eeed0ac412575fe62fb5149f5f144a2fdedef39","matched":true,"value":{"index":231,"parent":null,"category":"test.step","title":"surface: journal-calendar safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":463,"finished":492,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-6","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/273","valueSha256":"f666dfb8a3ba76b7c750a73e611ac71b0e56a06ffd6b7f39b293712c402a2c02","matched":true,"value":{"index":273,"parent":null,"category":"test.step","title":"surface: journal-day safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":547,"finished":598,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-7","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/299","valueSha256":"7a95003a7440b6b23ed4438800c1079461ffbe930e8a1fde761e39fbb8098f5c","matched":true,"value":{"index":299,"parent":null,"category":"test.step","title":"surface: journal-day safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":599,"finished":638,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-8","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/441","valueSha256":"2470e4d9274504c52908c06d1ad17695158d0b5d57c1e2fb810efe07038f851e","matched":true,"value":{"index":441,"parent":null,"category":"test.step","title":"surface: journal-month safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":883,"finished":912,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-9","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/456","valueSha256":"3a0f7bb6bf6b80aad830ea0b7841c0a0aeb580ac77e818e2eaddff26c9bbb90e","matched":true,"value":{"index":456,"parent":null,"category":"test.step","title":"surface: journal-month safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":913,"finished":948,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-10","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/344","valueSha256":"b0bd77dea8188568dc175129458c6de7712828545727064a047e68cde0347938","matched":true,"value":{"index":344,"parent":null,"category":"test.step","title":"surface: journal-session safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":689,"finished":724,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-11","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/362","valueSha256":"808b7b466f1a9b0c750dbd13b3e328a5544688e6dfa4c99284de5dd0fe86826f","matched":true,"value":{"index":362,"parent":null,"category":"test.step","title":"surface: journal-session safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":725,"finished":760,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-12","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/501","valueSha256":"ca7d63505e50ee61b40e30f5b5dbd5ee2ae2493e79bdec9e6a8b01b779111c19","matched":true,"value":{"index":501,"parent":null,"category":"test.step","title":"surface: feed safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1003,"finished":1038,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-13","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/519","valueSha256":"fd23a74e50c99e43ae93f3e7d3457e85a355bacc6031e881a3ffec7cec8aba87","matched":true,"value":{"index":519,"parent":null,"category":"test.step","title":"surface: feed safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1039,"finished":1074,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-14","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/562","valueSha256":"92efbc44992e56faf886e1c302eb05f19ffd458f23f82c493f955d77df3ada70","matched":true,"value":{"index":562,"parent":null,"category":"test.step","title":"surface: feed-session safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1125,"finished":1154,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-15","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/577","valueSha256":"6a57915fee92a432f69f259534dd01de7865cc87a099b5dab5b139dcabbf5829","matched":true,"value":{"index":577,"parent":null,"category":"test.step","title":"surface: feed-session safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1155,"finished":1184,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-16","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/748","valueSha256":"26193fc8508b41f80a9e6f32a8725393d00285db4203d9e14c8b08495d9c73c6","matched":true,"value":{"index":748,"parent":null,"category":"test.step","title":"surface: group-list safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1497,"finished":1524,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-17","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/762","valueSha256":"75a9a569e816e875ed4c0c025d04d23ffbdc4381e83d56952a92ae5c72b9443e","matched":true,"value":{"index":762,"parent":null,"category":"test.step","title":"surface: group-list safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1525,"finished":1552,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-18","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/856","valueSha256":"bb8ecd1e58beb82d8a922250becdf9a261724d48d3093c64ca6953b740e755c4","matched":true,"value":{"index":856,"parent":null,"category":"test.step","title":"surface: group-board safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1713,"finished":1742,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-19","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/871","valueSha256":"5d0560646eaf8fd93427f0d8b3dd4f23faa46cc309b4f97913c9e23d98d39ab1","matched":true,"value":{"index":871,"parent":null,"category":"test.step","title":"surface: group-board safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1743,"finished":1772,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-20","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/801","valueSha256":"63cf79f6c24b535049977bd7862615527d889f3028e6d1dd74ab9e18ff2f8303","matched":true,"value":{"index":801,"parent":null,"category":"test.step","title":"surface: group-lounge safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1603,"finished":1632,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-21","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/816","valueSha256":"8e514c1a6b3987741db930a60a71bb9e0ef4a301d5af73754a7f7a6a681f4714","matched":true,"value":{"index":816,"parent":null,"category":"test.step","title":"surface: group-lounge safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1633,"finished":1662,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-22","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/937","valueSha256":"b2c9d73c4ccd5b588918278c8dac86b448224a9433f7524f2a6776f9e56f43fa","matched":true,"value":{"index":937,"parent":null,"category":"test.step","title":"surface: report safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1875,"finished":1908,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-23","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/954","valueSha256":"1e08e6edc581944e736bda7c3784766fc862a2a35139be303caae9b07332a6bc","matched":true,"value":{"index":954,"parent":null,"category":"test.step","title":"surface: report safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1909,"finished":1942,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-24","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/1071","valueSha256":"239da95192fb50673824c022b6028fe29bb2da6b026ec1efbf2b3ab32d6e293f","matched":true,"value":{"index":1071,"parent":null,"category":"test.step","title":"surface: records-layer safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":2143,"finished":2172,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-25","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/1086","valueSha256":"632d767f62fe07d6b1aff4d3979fecba848875c5cb4f2b1d0d8e0c9dd1037552","matched":true,"value":{"index":1086,"parent":null,"category":"test.step","title":"surface: records-layer safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":2173,"finished":2202,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-26","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/993","valueSha256":"9a0a9854f7b1d566ef067f3ad92ba70e42ca20e518571e776b2f607572de7c36","matched":true,"value":{"index":993,"parent":null,"category":"test.step","title":"surface: pr-detail safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1987,"finished":2022,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-27","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/1011","valueSha256":"dfd340c5c7eb652575712a29779f509986e9fc3adcf4a0d963ee0b6046839f34","matched":true,"value":{"index":1011,"parent":null,"category":"test.step","title":"surface: pr-detail safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":2023,"finished":2058,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-28","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/167","valueSha256":"6b8e5f8474b531dbac8ca48d45ec956e1a88a05a946ca38e2ac474c37906ea98","matched":true,"value":{"index":167,"parent":null,"category":"test.step","title":"surface: pr-tape safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":335,"finished":364,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-29","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/182","valueSha256":"99cc72c0645ae976490f708e0bf5becf4179429dba150e9791bb27de2d2387b4","matched":true,"value":{"index":182,"parent":null,"category":"test.step","title":"surface: pr-tape safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":365,"finished":394,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-30","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/684","valueSha256":"f080b875cd3b4eb98b1a321a6428c6570b480c158ff80ed2973180a595218d28","matched":true,"value":{"index":684,"parent":null,"category":"test.step","title":"surface: friend-journal safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1369,"finished":1398,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-31","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/699","valueSha256":"8a100fe882d5011d3c386b6fd70fbfe7d77a936b30ea684586615e5ec61de5c2","matched":true,"value":{"index":699,"parent":null,"category":"test.step","title":"surface: friend-journal safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1399,"finished":1428,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-32","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/635","valueSha256":"dd93669f88727abfd545ed3e54c26b1db6abab4e11966cb73754a62259208621","matched":true,"value":{"index":635,"parent":null,"category":"test.step","title":"surface: friend-scope safe 0","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1271,"finished":1300,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-33","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/650","valueSha256":"33afcc3d88ce901b6a6cc850c36b77232997c28be77c95bb3c35a5e4db53ef48","matched":true,"value":{"index":650,"parent":null,"category":"test.step","title":"surface: friend-scope safe 34","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":251,"column":9},"pollSampleLocations":null,"started":1301,"finished":1330,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-34","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Source scope: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/1109","valueSha256":"619f6a1bc2f79ab072af3258b1975fc046b2f945db37cec60d4dc343d5ba8f96","matched":true,"value":{"index":1109,"parent":null,"category":"test.step","title":"required surface identities and safe values","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":433,"column":5},"pollSampleLocations":null,"started":2219,"finished":2256,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"journal-day safe0에서 실제 padding-bottom을0으로 바꾸고 동일 measure reader의 contentBottom≤chromeTop+0.5 판정이 깨지는지 확인한다. Scope limit: #1250 journal-day 여백 결함을 대표한다. 다른16표면의 개별 제품 mutant까지 실행했다고 주장하지 않는다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/controls/0/normalActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"journal-day safe0에서 실제 padding-bottom을0으로 바꾸고 동일 measure reader의 contentBottom≤chromeTop+0.5 판정이 깨지는지 확인한다. Scope limit: #1250 journal-day 여백 결함을 대표한다. 다른16표면의 개별 제품 mutant까지 실행했다고 주장하지 않는다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/controls/0/negativeActual","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"journal-day safe0에서 실제 padding-bottom을0으로 바꾸고 동일 measure reader의 contentBottom≤chromeTop+0.5 판정이 깨지는지 확인한다. Scope limit: #1250 journal-day 여백 결함을 대표한다. 다른16표면의 개별 제품 mutant까지 실행했다고 주장하지 않는다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/controls/0/restoredActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"journal-day safe0에서 실제 padding-bottom을0으로 바꾸고 동일 measure reader의 contentBottom≤chromeTop+0.5 판정이 깨지는지 확인한다. Scope limit: #1250 journal-day 여백 결함을 대표한다. 다른16표면의 개별 제품 mutant까지 실행했다고 주장하지 않는다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/controls/0","valueSha256":"1f90e4f2caa8329ff1d169f3613b0af36246076c7fc82bb26e5b4e4d40603392","matched":true,"value":{"id":"viewport-journal-day-clearance","description":"하루 상세에서 하단 여백이 사라져 콘텐츠가 탭바 아래에 놓이는 결함","boundary":"surface: journal-day safe 0","status":"passed","expected":true,"comparator":{"kind":"deepEqual"},"normalActual":true,"normal":{"matched":true},"negativeActual":false,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":true,"restored":{"matched":true},"durationMs":31}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/cleanup","valueSha256":"e9f8b8ad0925a1c13ae1dea543ffcf46da114bb4f4d7a4b844f7054989710b20","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":21},{"id":"control-viewport-journal-day-clearance","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/fixture-cleanup-afterAll-121","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"This actual shared suite afterAll at e2e/bottom-clearance.spec.mjs:121 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/quality/steps/1137","valueSha256":"b4340c838eeb830fefbacb0057e973037cc40953727997c27e0b33dfb9a29c12","matched":true,"value":{"index":1137,"parent":1128,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\bottom-clearance.spec.mjs","line":121,"column":8},"pollSampleLocations":null,"started":2274,"finished":2275,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/0/suites/0/specs/0/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/durationMs","valueSha256":"0a24eab03d5142dfa6fa4424b5717a965c1aff2b31ba9fa64cd8dadceca237c2","matched":true,"value":21228},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/0/suites/0/specs/0/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/0/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/0/suites/0/specs/0/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/title","valueSha256":"41a6bc5cae57ee9f5643deeccc540bfa4b92fcff7b9c9dc1c71273055c5e85ab","matched":true,"value":"16 surfaces: content never ends under the bottom chrome (safe 0/34)"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/startedAt","valueSha256":"c0bae8c98e51995f39960553874da022ec096b600552952d0e8f274c412808e4","matched":true,"value":"2026-09-09T20:02:47.615Z"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/finishedAt","valueSha256":"b47c3011ffe2404915a6882ff613f22af8548bfb3076b56121e2d452feb652d7","matched":true,"value":"2026-09-09T20:03:08.837Z"},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/contexts/0/controls","valueSha256":"e42534d55c71ea56e8861c50489be2bd18142dda12782e666ee453822ecff19e","matched":true,"value":[{"id":"viewport-journal-day-clearance","phase":"normal","at":"2026-09-09T20:02:53.668Z","pages":[{"page":"viewport-context-1/page-1","documentId":"38808EA29FC5134C986EFE0E50500833"}]},{"id":"viewport-journal-day-clearance","phase":"inject-started","at":"2026-09-09T20:02:53.669Z","pages":[{"page":"viewport-context-1/page-1","documentId":"38808EA29FC5134C986EFE0E50500833"}]},{"id":"viewport-journal-day-clearance","phase":"inject-finished","at":"2026-09-09T20:02:53.687Z","pages":[{"page":"viewport-context-1/page-1","documentId":"38808EA29FC5134C986EFE0E50500833"}]},{"id":"viewport-journal-day-clearance","phase":"negative","at":"2026-09-09T20:02:53.689Z","pages":[{"page":"viewport-context-1/page-1","documentId":"38808EA29FC5134C986EFE0E50500833"}]},{"id":"viewport-journal-day-clearance","phase":"restore-started","at":"2026-09-09T20:02:53.690Z","pages":[{"page":"viewport-context-1/page-1","documentId":"38808EA29FC5134C986EFE0E50500833"}]},{"id":"viewport-journal-day-clearance","phase":"restore-finished","at":"2026-09-09T20:02:53.693Z","pages":[{"page":"viewport-context-1/page-1","documentId":"38808EA29FC5134C986EFE0E50500833"}]},{"id":"viewport-journal-day-clearance","phase":"restored","at":"2026-09-09T20:02:53.695Z","pages":[{"page":"viewport-context-1/page-1","documentId":"38808EA29FC5134C986EFE0E50500833"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"47717617720840ee331f698caa7b018a0859aa1cee03a8e7d384b8efbc2ef5aa","matched":true,"value":[{"frameId":"999558AD702E7880B37480FD50E56E65","documentId":"2BC991D667CCEBEE807DF1C25DF88F7E","path":"blank","kind":"initial","sequence":1},{"frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"45ac672901ac50bb1e64ffe73f1be9129e87194f50e4ca1d93773317b0945b5d","matched":true,"value":[{"id":"1","protocolId":"38808EA29FC5134C986EFE0E50500833","method":"GET","path":"/","resourceType":"Document","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002574.888,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81002587.932,"settledSequence":5},{"id":"2","protocolId":"80728.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002751.653,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81002777.64899999,"settledSequence":18},{"id":"3","protocolId":"80728.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002751.903,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81002763.518,"settledSequence":15},{"id":"4","protocolId":"80728.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002752.182,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":21,"settledAtMs":81002782.7,"settledSequence":22},{"id":"5","protocolId":"80728.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002761.13499999,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81002769.447,"settledSequence":16},{"id":"6","protocolId":"80728.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002761.42999999,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81002781.416,"settledSequence":20},{"id":"7","protocolId":"80728.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002761.759,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":26,"settledAtMs":81002792.374,"settledSequence":29},{"id":"8","protocolId":"80728.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002786.55600001,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81002810.51300001,"settledSequence":31},{"id":"9","protocolId":"80728.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002786.808,"startedSequence":24,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81002828.74599999,"settledSequence":39},{"id":"10","protocolId":"80728.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002787.004,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81002822.02000001,"settledSequence":37},{"id":"11","protocolId":"80728.52","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002809.125,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81002817.978,"settledSequence":34},{"id":"12","protocolId":"80728.53","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002809.51,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81002819.153,"settledSequence":35},{"id":"13","protocolId":"80728.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002868.193,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81002876.13000001,"settledSequence":45},{"id":"14","protocolId":"80728.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002869.507,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81002875.52,"settledSequence":44},{"id":"15","protocolId":"80728.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002922.273,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81002940.207,"settledSequence":49},{"id":"16","protocolId":"80728.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002923.251,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81003573.73,"settledSequence":57},{"id":"17","protocolId":"80728.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002948.116,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81002973.818,"settledSequence":52},{"id":"18","protocolId":"80728.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81002977.376,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81003010.20400001,"settledSequence":55},{"id":"19","protocolId":"80728.86","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81003879.553,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81003891.416,"settledSequence":60},{"id":"20","protocolId":"80728.87","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81007318.60499999,"startedSequence":61,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":63,"settledAtMs":81007331.949,"settledSequence":64},{"id":"21","protocolId":"80728.88","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81007318.858,"startedSequence":62,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81007338.40100001,"settledSequence":66},{"id":"22","protocolId":"80728.89","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81007807.67,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81007888.531,"settledSequence":69},{"id":"23","protocolId":"80728.90","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81008705.702,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":71,"settledAtMs":81008740.301,"settledSequence":72},{"id":"24","protocolId":"80728.91","method":"POST","path":"/rest/v1/rpc/get_calendar_range_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81010617.73300001,"startedSequence":73,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81010631.497,"settledSequence":75},{"id":"25","protocolId":"80728.92","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81011836.89999999,"startedSequence":76,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":77,"settledAtMs":81011843.55999999,"settledSequence":78},{"id":"26","protocolId":"80728.93","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81012390.943,"startedSequence":79,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":80,"settledAtMs":81012421.971,"settledSequence":81},{"id":"27","protocolId":"80728.94","method":"POST","path":"/rest/v1/rpc/get_following_pr_overview_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81013839.334,"startedSequence":82,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":87,"settledAtMs":81013867.54599999,"settledSequence":88},{"id":"28","protocolId":"80728.95","method":"POST","path":"/rest/v1/rpc/get_following_home_dashboard_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81013839.589,"startedSequence":83,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":89,"settledAtMs":81013874.08500001,"settledSequence":90},{"id":"29","protocolId":"80728.96","method":"POST","path":"/rest/v1/rpc/get_following_exercise_favorites_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81013839.88499999,"startedSequence":84,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":85,"settledAtMs":81013857.682,"settledSequence":86},{"id":"30","protocolId":"80728.97","method":"POST","path":"/rest/v1/rpc/get_following_calendar_month_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81014755.663,"startedSequence":91,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":92,"settledAtMs":81014771.143,"settledSequence":93},{"id":"31","protocolId":"80728.98","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81014871.445,"startedSequence":94,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":95,"settledAtMs":81014886.42199999,"settledSequence":96},{"id":"32","protocolId":"80728.99","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81015345.726,"startedSequence":97,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":98,"settledAtMs":81015369.242,"settledSequence":99},{"id":"33","protocolId":"80728.100","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81015824.186,"startedSequence":100,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":101,"settledAtMs":81015859.56199999,"settledSequence":102},{"id":"34","protocolId":"80728.101","method":"POST","path":"/rest/v1/rpc/get_group_lounge_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81016325.65,"startedSequence":103,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":106,"settledAtMs":81016339.97299999,"settledSequence":108},{"id":"35","protocolId":"80728.102","method":"POST","path":"/rest/v1/rpc/get_group_attendance_month_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81016326.119,"startedSequence":104,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":107,"settledAtMs":81016341.057,"settledSequence":109},{"id":"36","protocolId":"80728.103","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81016331.714,"startedSequence":105,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":110,"settledAtMs":81016369.234,"settledSequence":111},{"id":"37","protocolId":"80728.104","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81016840.476,"startedSequence":112,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":113,"settledAtMs":81016857.211,"settledSequence":114},{"id":"38","protocolId":"80728.105","method":"POST","path":"/rest/v1/rpc/get_group_board_day_sessions_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81017275.308,"startedSequence":115,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":117,"settledAtMs":81017287.417,"settledSequence":119},{"id":"39","protocolId":"80728.106","method":"POST","path":"/rest/v1/rpc/get_group_board_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81017275.75099999,"startedSequence":116,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":118,"settledAtMs":81017288.21,"settledSequence":120},{"id":"40","protocolId":"80728.107","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81017332.836,"startedSequence":121,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":122,"settledAtMs":81017361.801,"settledSequence":123},{"id":"41","protocolId":"80728.108","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81017831.217,"startedSequence":124,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":125,"settledAtMs":81017857.055,"settledSequence":126},{"id":"42","protocolId":"80728.109","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81018310.775,"startedSequence":127,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":128,"settledAtMs":81018326.33,"settledSequence":129},{"id":"43","protocolId":"80728.110","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81018783.904,"startedSequence":130,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":131,"settledAtMs":81018803.87099999,"settledSequence":132},{"id":"44","protocolId":"80728.111","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81018899.442,"startedSequence":133,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":134,"settledAtMs":81018910.325,"settledSequence":135},{"id":"45","protocolId":"80728.112","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81019258.321,"startedSequence":136,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":137,"settledAtMs":81019270.871,"settledSequence":138},{"id":"46","protocolId":"80728.113","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81019433.651,"startedSequence":139,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":140,"settledAtMs":81019447.19399999,"settledSequence":141},{"id":"47","protocolId":"80728.114","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81019728.073,"startedSequence":142,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":143,"settledAtMs":81019739.48400001,"settledSequence":144},{"id":"48","protocolId":"80728.115","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81020194.43,"startedSequence":145,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":146,"settledAtMs":81020211.85399999,"settledSequence":147},{"id":"49","protocolId":"80728.116","method":"POST","path":"/rest/v1/rpc/get_exercise_pr_detail","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81020647.629,"startedSequence":148,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":149,"settledAtMs":81020671.945,"settledSequence":151},{"id":"50","protocolId":"80728.117","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81020694.812,"startedSequence":150,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":152,"settledAtMs":81020713.98099999,"settledSequence":156},{"id":"51","protocolId":"80728.118","method":"POST","path":"/rest/v1/rpc/get_exercise_pr_detail_year","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81020820.581,"startedSequence":153,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":159,"settledAtMs":81020835.897,"settledSequence":161},{"id":"52","protocolId":"80728.119","method":"POST","path":"/rest/v1/rpc/get_exercise_pr_records","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81020820.903,"startedSequence":154,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":157,"settledAtMs":81020831.294,"settledSequence":158},{"id":"53","protocolId":"80728.120","method":"POST","path":"/rest/v1/rpc/get_exercise_pr_history","resourceType":"Fetch","frameId":"999558AD702E7880B37480FD50E56E65","documentId":"38808EA29FC5134C986EFE0E50500833","startedAtMs":81020821.138,"startedSequence":155,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":160,"settledAtMs":81020885.585,"settledSequence":162}]},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"7bd4736f2dcfc45daf8141cf3fb524d5aac45deb2d517f38f7a2152e8fe6b10d","matched":true,"value":{"sequence":163,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/0/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"3f800313d4873a7c2b1d18807b7ad282c1858dc5637012237e58c3b7c57b7e98","matched":true,"value":{"status":"completed","closeSequence":163,"startedSequence":164,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":165}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"3 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/checkpoints","valueSha256":"9e48248159ec998490fc3dd2386d8fa7f5434b3c3207bb06664f7d0edacd5f79","matched":true,"value":[{"id":"group name saved","passed":true,"assertions":7},{"id":"two notices persisted in order","passed":true,"assertions":5},{"id":"group name and notices survive reload","passed":true,"assertions":7}]},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Source scope: 그룹장이 그룹명을 변경하고 공지2개를 작성한 뒤 RPC 재조회와 새로고침한 지난 공지 목록에서 유지·순서를 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/steps/12","valueSha256":"4c7259489e7b5b1f55e5ea90d18894bade5a5347d00ee5911a86ea5eaadb5b1c","matched":true,"value":{"index":12,"parent":null,"category":"test.step","title":"group name saved","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":91,"column":5},"pollSampleLocations":null,"started":3639,"finished":3710,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Source scope: 그룹장이 그룹명을 변경하고 공지2개를 작성한 뒤 RPC 재조회와 새로고침한 지난 공지 목록에서 유지·순서를 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/steps/48","valueSha256":"af334a48d1cedaf8c510dd06c1542a214b1a0c4e1126f21f67b87322f48202e1","matched":true,"value":{"index":48,"parent":null,"category":"test.step","title":"two notices persisted in order","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":102,"column":5},"pollSampleLocations":null,"started":3711,"finished":3738,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Source scope: 그룹장이 그룹명을 변경하고 공지2개를 작성한 뒤 RPC 재조회와 새로고침한 지난 공지 목록에서 유지·순서를 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/steps/62","valueSha256":"c4f984e484dff3902337156f063772bfcbfb5d228c12329e86c084760ddb0182","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"group name and notices survive reload","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":115,"column":5},"pollSampleLocations":null,"started":3739,"finished":3800,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"재진입한 지난 공지 목록의 실제 text node에서 이전 공지 원문을 잘못된 원문으로 바꾸고 같은 text reader의 includes 판정을 검사한다. Scope limit: 이전 공지의 표시 유실을 대표한다. DB 공지를 삭제하거나 서버 저장 실패를 허용한 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/controls/0/normalActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"재진입한 지난 공지 목록의 실제 text node에서 이전 공지 원문을 잘못된 원문으로 바꾸고 같은 text reader의 includes 판정을 검사한다. Scope limit: 이전 공지의 표시 유실을 대표한다. DB 공지를 삭제하거나 서버 저장 실패를 허용한 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/controls/0/negativeActual","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"재진입한 지난 공지 목록의 실제 text node에서 이전 공지 원문을 잘못된 원문으로 바꾸고 같은 text reader의 includes 판정을 검사한다. Scope limit: 이전 공지의 표시 유실을 대표한다. DB 공지를 삭제하거나 서버 저장 실패를 허용한 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/controls/0/restoredActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"재진입한 지난 공지 목록의 실제 text node에서 이전 공지 원문을 잘못된 원문으로 바꾸고 같은 text reader의 includes 판정을 검사한다. Scope limit: 이전 공지의 표시 유실을 대표한다. DB 공지를 삭제하거나 서버 저장 실패를 허용한 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/controls/0","valueSha256":"259bb63d588a182dc38f7aff6c6b6d8df68e8ee566aa913013009ca2acfbef89","matched":true,"value":{"id":"viewport-group-prior-notice-retained","description":"재진입 후 이전 공지 내용이 유실되거나 다른 문구로 바뀌는 결함","boundary":"group name and notices survive reload","status":"passed","expected":true,"comparator":{"kind":"deepEqual"},"normalActual":true,"normal":{"matched":true},"negativeActual":false,"negative":{"matched":false,"applied":{"count":1,"textNodes":1}},"restoredActual":true,"restored":{"matched":true},"durationMs":32}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/cleanup","valueSha256":"f210249837eeb7ca004fe5a81ff654c25ac0f84faf1324f628e82cfa4ae75e17","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":2},{"id":"control-viewport-group-prior-notice-retained","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/fixture-cleanup-afterEach-84","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"This CASE's actual afterEach at e2e/group-design-notifications.spec.mjs:84 completes its account and cron-scope cleanup.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/quality/steps/94","valueSha256":"ab5619d3a3b03e9fb76067da7fd7ed9194a2ec624ac3020166acdf998b00e257","matched":true,"value":{"index":94,"parent":93,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":84,"column":8},"pollSampleLocations":null,"started":3802,"finished":3803,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/0/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/durationMs","valueSha256":"15e455ddba0cbf83d388c148ee404c9ae0ac4ebf66abb7c65da36a554a85ac71","matched":true,"value":4656},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/0/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/0/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/title","valueSha256":"669a7295333c4f61b0c81566b30e94357d4e7c9ec0a67feda03bbe2b087496f2","matched":true,"value":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/startedAt","valueSha256":"448340d46289248b2ea0f7f724e36193e46944dbca3b657c936651dcc84e587c","matched":true,"value":"2026-09-09T20:03:23.749Z"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/finishedAt","valueSha256":"c0ec07ff2550f5c942750cde3c65ed3cac1799a390af5eec78cfee7a63edec57","matched":true,"value":"2026-09-09T20:03:28.405Z"},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/contexts/0/controls","valueSha256":"55faa6b47b04735add26e4519b8ab9ab4dd7dac1659c14f1b65bc030214d9f82","matched":true,"value":[{"id":"viewport-group-prior-notice-retained","phase":"normal","at":"2026-09-09T20:03:28.064Z","pages":[{"page":"viewport-context-1/page-1","documentId":"66A94737EB605A8D051B495D0B315404"}]},{"id":"viewport-group-prior-notice-retained","phase":"inject-started","at":"2026-09-09T20:03:28.064Z","pages":[{"page":"viewport-context-1/page-1","documentId":"66A94737EB605A8D051B495D0B315404"}]},{"id":"viewport-group-prior-notice-retained","phase":"inject-finished","at":"2026-09-09T20:03:28.085Z","pages":[{"page":"viewport-context-1/page-1","documentId":"66A94737EB605A8D051B495D0B315404"}]},{"id":"viewport-group-prior-notice-retained","phase":"negative","at":"2026-09-09T20:03:28.089Z","pages":[{"page":"viewport-context-1/page-1","documentId":"66A94737EB605A8D051B495D0B315404"}]},{"id":"viewport-group-prior-notice-retained","phase":"restore-started","at":"2026-09-09T20:03:28.089Z","pages":[{"page":"viewport-context-1/page-1","documentId":"66A94737EB605A8D051B495D0B315404"}]},{"id":"viewport-group-prior-notice-retained","phase":"restore-finished","at":"2026-09-09T20:03:28.091Z","pages":[{"page":"viewport-context-1/page-1","documentId":"66A94737EB605A8D051B495D0B315404"}]},{"id":"viewport-group-prior-notice-retained","phase":"restored","at":"2026-09-09T20:03:28.094Z","pages":[{"page":"viewport-context-1/page-1","documentId":"66A94737EB605A8D051B495D0B315404"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"906c3c5ffd9053cccee316d2c7cd0d8567b1ca29798723c5e91fe3d7f9c8a9f4","matched":true,"value":[{"frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"78F89A37915A36948DCA4F4998EFBD85","path":"blank","kind":"initial","sequence":1},{"frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","path":"/","kind":"committed","sequence":4},{"frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","path":"/","kind":"committed","sequence":81}]},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"3d46dd9c64d1a5841f3df2770fc06f70dad8fe66b9d546e28644c47e67307955","matched":true,"value":[{"id":"1","protocolId":"EA01E9B124695B66C49D7B20FCC9AE04","method":"GET","path":"/","resourceType":"Document","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039433.482,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81039437.227,"settledSequence":5},{"id":"2","protocolId":"46756.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039588.192,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81039603.87200001,"settledSequence":18},{"id":"3","protocolId":"46756.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039588.456,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81039601.576,"settledSequence":16},{"id":"4","protocolId":"46756.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039588.824,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81039604.598,"settledSequence":17},{"id":"5","protocolId":"46756.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039599.697,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":23,"settledAtMs":81039613.639,"settledSequence":25},{"id":"6","protocolId":"46756.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039600.064,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":24,"settledAtMs":81039615.384,"settledSequence":26},{"id":"7","protocolId":"46756.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039600.324,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":27,"settledAtMs":81039619.50400001,"settledSequence":31},{"id":"8","protocolId":"46756.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039611.716,"startedSequence":19,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81039634.8,"settledSequence":36},{"id":"9","protocolId":"46756.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039612.241,"startedSequence":20,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81039626.20199999,"settledSequence":35},{"id":"10","protocolId":"46756.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039612.66100001,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":34,"settledAtMs":81039634.934,"settledSequence":37},{"id":"11","protocolId":"46756.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039615.128,"startedSequence":22,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":28,"settledAtMs":81039624.868,"settledSequence":32},{"id":"12","protocolId":"46756.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039665.572,"startedSequence":30,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81039671.972,"settledSequence":39},{"id":"13","protocolId":"46756.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039740.844,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81039747.994,"settledSequence":45},{"id":"14","protocolId":"46756.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039741.691,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81039747.88700001,"settledSequence":44},{"id":"15","protocolId":"46756.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039790.97,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81039801.261,"settledSequence":49},{"id":"16","protocolId":"46756.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039791.49000001,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81040588.475,"settledSequence":63},{"id":"17","protocolId":"46756.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039807.439,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81039825.369,"settledSequence":52},{"id":"18","protocolId":"46756.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81039830.41399999,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81039850.701,"settledSequence":55},{"id":"19","protocolId":"46756.86","method":"POST","path":"/rest/v1/rpc/get_group_lounge_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81040468.09300001,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":58,"settledAtMs":81040478.97,"settledSequence":59},{"id":"20","protocolId":"46756.87","method":"POST","path":"/rest/v1/rpc/get_group_attendance_month_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81040468.45,"startedSequence":57,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81040482.78999999,"settledSequence":61},{"id":"21","protocolId":"46756.88","method":"POST","path":"/rest/v1/rpc/update_group_profile_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81040986.829,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81041004.043,"settledSequence":66},{"id":"22","protocolId":"46756.89","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81041010.118,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":71,"settledAtMs":81041022.90100001,"settledSequence":72},{"id":"23","protocolId":"46756.90","method":"POST","path":"/rest/v1/rpc/get_group_lounge_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81041010.514,"startedSequence":68,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":69,"settledAtMs":81041021.613,"settledSequence":70},{"id":"24","protocolId":"46756.91","method":"POST","path":"/rest/v1/rpc/add_group_notice_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81041203.117,"startedSequence":73,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81041222.89600001,"settledSequence":75},{"id":"25","protocolId":"46756.92","method":"POST","path":"/rest/v1/rpc/add_group_notice_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"EA01E9B124695B66C49D7B20FCC9AE04","startedAtMs":81041350.24,"startedSequence":76,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":77,"settledAtMs":81041362.787,"settledSequence":78},{"id":"26","protocolId":"66A94737EB605A8D051B495D0B315404","method":"GET","path":"/","resourceType":"Document","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041397.68599999,"startedSequence":79,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":80,"settledAtMs":81041401.00500001,"settledSequence":82},{"id":"27","protocolId":"46756.135","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041479.59899999,"startedSequence":84,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":92,"settledAtMs":81041485.83999999,"settledSequence":95},{"id":"28","protocolId":"46756.136","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041479.918,"startedSequence":85,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":90,"settledAtMs":81041485.73,"settledSequence":93},{"id":"29","protocolId":"46756.137","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041480.198,"startedSequence":86,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":91,"settledAtMs":81041485.91499999,"settledSequence":94},{"id":"30","protocolId":"46756.138","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041487.784,"startedSequence":87,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":96,"settledAtMs":81041492.47399999,"settledSequence":101},{"id":"31","protocolId":"46756.139","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041488.142,"startedSequence":88,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":100,"settledAtMs":81041493.353,"settledSequence":103},{"id":"32","protocolId":"46756.140","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041488.41000001,"startedSequence":89,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":104,"settledAtMs":81041499.13,"settledSequence":108},{"id":"33","protocolId":"46756.141","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041495.21700001,"startedSequence":97,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":106,"settledAtMs":81041516.164,"settledSequence":111},{"id":"34","protocolId":"46756.142","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041495.52700001,"startedSequence":98,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":105,"settledAtMs":81041503.954,"settledSequence":110},{"id":"35","protocolId":"46756.143","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041495.991,"startedSequence":99,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":107,"settledAtMs":81041516.32599999,"settledSequence":112},{"id":"36","protocolId":"46756.144","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041500.906,"startedSequence":102,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":109,"settledAtMs":81041507.529,"settledSequence":114},{"id":"37","protocolId":"46756.145","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041620.13599999,"startedSequence":113,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":115,"settledAtMs":81041624.46200001,"settledSequence":118},{"id":"38","protocolId":"46756.146","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041804.523,"startedSequence":116,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":119,"settledAtMs":81041809.296,"settledSequence":121},{"id":"39","protocolId":"46756.147","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041805.076,"startedSequence":117,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":120,"settledAtMs":81041809.64,"settledSequence":122},{"id":"40","protocolId":"46756.174","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041866.022,"startedSequence":123,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":124,"settledAtMs":81041879.166,"settledSequence":125},{"id":"41","protocolId":"46756.175","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041888.609,"startedSequence":126,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":127,"settledAtMs":81041902.06799999,"settledSequence":128},{"id":"42","protocolId":"46756.176","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81041906.842,"startedSequence":129,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":130,"settledAtMs":81041917.63900001,"settledSequence":131},{"id":"43","protocolId":"46756.177","method":"POST","path":"/rest/v1/rpc/get_group_lounge_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81042400.848,"startedSequence":132,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":134,"settledAtMs":81042406.693,"settledSequence":136},{"id":"44","protocolId":"46756.178","method":"POST","path":"/rest/v1/rpc/get_group_attendance_month_v1","resourceType":"Fetch","frameId":"DEA8FCE0F1A6BF4CA059FBCD1551F511","documentId":"66A94737EB605A8D051B495D0B315404","startedAtMs":81042401.12799999,"startedSequence":133,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":135,"settledAtMs":81042408.699,"settledSequence":137}]},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"5e44ddf7a49f7fc046e771e93f546cf4b18e393f245110197b478f013b1c2833","matched":true,"value":{"sequence":138,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/2/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"42b1a696aea2ab4653a558d186b5c317691bb2936c92cb27d30ce2015ad71bd1","matched":true,"value":{"status":"completed","closeSequence":138,"startedSequence":139,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":140}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"3 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/checkpoints","valueSha256":"8cf7d0613d54d2170e3230ec33b063769e7eeadcb95fe56c6d69a35fe13a97f4","matched":true,"value":[{"id":"invitation accepted","passed":true,"assertions":8},{"id":"notifications marked read","passed":true,"assertions":4},{"id":"read state survives reload","passed":true,"assertions":6}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Source scope: 멤버가 초대를 수락하고 실제 팔로우 알림을 읽은 뒤 서버 read_at와 새로고침 UI에 읽음 상태가 유지되는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/steps/12","valueSha256":"c3386d940fe3cc4c72aff1f1581bbda60e272b4f9bfc69c83bd3ffd4d07b63f7","matched":true,"value":{"index":12,"parent":null,"category":"test.step","title":"invitation accepted","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":133,"column":5},"pollSampleLocations":null,"started":3859,"finished":4120,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Source scope: 멤버가 초대를 수락하고 실제 팔로우 알림을 읽은 뒤 서버 read_at와 새로고침 UI에 읽음 상태가 유지되는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/steps/143","valueSha256":"30161ba7db551d9f0e08d2496a9878a6b531f6c611682219005339abb10d4448","matched":true,"value":{"index":143,"parent":null,"category":"test.step","title":"notifications marked read","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":145,"column":5},"pollSampleLocations":null,"started":4121,"finished":4132,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Source scope: 멤버가 초대를 수락하고 실제 팔로우 알림을 읽은 뒤 서버 read_at와 새로고침 UI에 읽음 상태가 유지되는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/steps/149","valueSha256":"2b32af21df0d4ea606705e3e096133016d934517816390608bb4b83916fbe6ff","matched":true,"value":{"index":149,"parent":null,"category":"test.step","title":"read state survives reload","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":152,"column":5},"pollSampleLocations":null,"started":4133,"finished":4186,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"이미 읽은 실제 follow행에 unread class를 붙이고 동일 unread locator.count()가 기대0과 달라지는지 검사한다. Scope limit: 재진입 UI의 unread 회귀를 대표한다. 서버 read_at 자체를 변조한 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/controls/0/normalActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"이미 읽은 실제 follow행에 unread class를 붙이고 동일 unread locator.count()가 기대0과 달라지는지 검사한다. Scope limit: 재진입 UI의 unread 회귀를 대표한다. 서버 read_at 자체를 변조한 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/controls/0/negativeActual","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"이미 읽은 실제 follow행에 unread class를 붙이고 동일 unread locator.count()가 기대0과 달라지는지 검사한다. Scope limit: 재진입 UI의 unread 회귀를 대표한다. 서버 read_at 자체를 변조한 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/controls/0/restoredActual","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"이미 읽은 실제 follow행에 unread class를 붙이고 동일 unread locator.count()가 기대0과 달라지는지 검사한다. Scope limit: 재진입 UI의 unread 회귀를 대표한다. 서버 read_at 자체를 변조한 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/controls/0","valueSha256":"193c2904a6b55fbddaa8157fcd8c0df68f035e965ff85bb1a976c2116cf2abde","matched":true,"value":{"id":"viewport-notification-read-state-retained","description":"새로고침 후 읽은 팔로우 알림이 미읽음으로 되돌아가는 결함","boundary":"read state survives reload","status":"passed","expected":0,"comparator":{"kind":"deepEqual"},"normalActual":0,"normal":{"matched":true},"negativeActual":1,"negative":{"matched":false,"applied":{"count":1}},"restoredActual":0,"restored":{"matched":true},"durationMs":44}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/cleanup","valueSha256":"5cc2b10615024d7889dc2904e2d2b6e5e70d9a322e4c92ef33beddbe60deec42","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":2},{"id":"control-viewport-notification-read-state-retained","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/fixture-cleanup-afterEach-84","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"This CASE's actual afterEach at e2e/group-design-notifications.spec.mjs:84 completes its account and cron-scope cleanup.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/quality/steps/177","valueSha256":"5f0089be02230f29efb9147104dcd7605ec09f30c6994b6d8edba0be7bd81331","matched":true,"value":{"index":177,"parent":176,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":84,"column":8},"pollSampleLocations":null,"started":4188,"finished":4189,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/1/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/durationMs","valueSha256":"225b9492fc4bd672bdb82e2e8ecce07b2c39ce04636b68a192ea6c37520410c6","matched":true,"value":9765},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/1/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/1/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/1/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/title","valueSha256":"185f87b260e7116185575b72992741164c10e997eaab4537325e504ac13675e6","matched":true,"value":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/startedAt","valueSha256":"a5f7dde65203fb73679e2985d31853baa88e3cde62d58615008c973c83c72ffa","matched":true,"value":"2026-09-09T20:03:28.422Z"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/finishedAt","valueSha256":"6bad580f4956cdd9b061adcc6829177d192b25f5279dd34dc2ef06374b8fe25d","matched":true,"value":"2026-09-09T20:03:38.186Z"},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/contexts/0/controls","valueSha256":"51a82839dd5b3ef1f61faa683a84004ea62f18c9ade24566d82d2b87c5959cf5","matched":true,"value":[{"id":"viewport-notification-read-state-retained","phase":"normal","at":"2026-09-09T20:03:37.777Z","pages":[{"page":"viewport-context-1/page-1","documentId":"0C663C4502D69077BB7E99E83FE201BE"}]},{"id":"viewport-notification-read-state-retained","phase":"inject-started","at":"2026-09-09T20:03:37.777Z","pages":[{"page":"viewport-context-1/page-1","documentId":"0C663C4502D69077BB7E99E83FE201BE"}]},{"id":"viewport-notification-read-state-retained","phase":"inject-finished","at":"2026-09-09T20:03:37.807Z","pages":[{"page":"viewport-context-1/page-1","documentId":"0C663C4502D69077BB7E99E83FE201BE"}]},{"id":"viewport-notification-read-state-retained","phase":"negative","at":"2026-09-09T20:03:37.811Z","pages":[{"page":"viewport-context-1/page-1","documentId":"0C663C4502D69077BB7E99E83FE201BE"}]},{"id":"viewport-notification-read-state-retained","phase":"restore-started","at":"2026-09-09T20:03:37.811Z","pages":[{"page":"viewport-context-1/page-1","documentId":"0C663C4502D69077BB7E99E83FE201BE"}]},{"id":"viewport-notification-read-state-retained","phase":"restore-finished","at":"2026-09-09T20:03:37.814Z","pages":[{"page":"viewport-context-1/page-1","documentId":"0C663C4502D69077BB7E99E83FE201BE"}]},{"id":"viewport-notification-read-state-retained","phase":"restored","at":"2026-09-09T20:03:37.817Z","pages":[{"page":"viewport-context-1/page-1","documentId":"0C663C4502D69077BB7E99E83FE201BE"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"10c914a7fddaf6014976b253e4a4060cf3fbf2f1dfabd46a43cc78f693495e6a","matched":true,"value":[{"frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"18DFA857FFC458A7591F2B1D843544C5","path":"blank","kind":"initial","sequence":1},{"frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","path":"/","kind":"committed","sequence":4},{"frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","path":"/","kind":"committed","sequence":75}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"c0a87ac03f8396724b045d4d654e2fee60f1f41a1b023c653324094d011a43a2","matched":true,"value":[{"id":"1","protocolId":"8B79CD185B21774F6E865BE169EFA6BA","method":"GET","path":"/","resourceType":"Document","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044175.06199999,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81044179.707,"settledSequence":5},{"id":"2","protocolId":"95580.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044363.671,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81044374.36,"settledSequence":16},{"id":"3","protocolId":"95580.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044364.12699999,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81044374.446,"settledSequence":17},{"id":"4","protocolId":"95580.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044364.451,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81044374.949,"settledSequence":18},{"id":"5","protocolId":"95580.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044374.268,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":22,"settledAtMs":81044380.462,"settledSequence":26},{"id":"6","protocolId":"95580.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044374.543,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":25,"settledAtMs":81044383.99800001,"settledSequence":28},{"id":"7","protocolId":"95580.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044374.783,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":24,"settledAtMs":81044382.795,"settledSequence":27},{"id":"8","protocolId":"95580.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044383.37300001,"startedSequence":19,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81044400.263,"settledSequence":36},{"id":"9","protocolId":"95580.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044383.682,"startedSequence":20,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81044392.74700001,"settledSequence":34},{"id":"10","protocolId":"95580.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044383.955,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81044401.51300001,"settledSequence":37},{"id":"11","protocolId":"95580.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044386.796,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81044394.806,"settledSequence":35},{"id":"12","protocolId":"95580.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044431.071,"startedSequence":33,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81044437.675,"settledSequence":41},{"id":"13","protocolId":"95580.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044482.609,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81044489.409,"settledSequence":44},{"id":"14","protocolId":"95580.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044483.855,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81044489.514,"settledSequence":45},{"id":"15","protocolId":"95580.82","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044531.111,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81045314.794,"settledSequence":57},{"id":"16","protocolId":"95580.83","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044535.271,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81044545.95899999,"settledSequence":49},{"id":"17","protocolId":"95580.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044552.56300001,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81044572.52,"settledSequence":52},{"id":"18","protocolId":"95580.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81044576.81,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81044596.583,"settledSequence":55},{"id":"19","protocolId":"95580.86","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81051003.95300001,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81051013.32300001,"settledSequence":60},{"id":"20","protocolId":"95580.87","method":"POST","path":"/rest/v1/rpc/respond_group_invite_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81051254.053,"startedSequence":61,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81051277.264,"settledSequence":63},{"id":"21","protocolId":"95580.88","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81051278.812,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81051288.485,"settledSequence":66},{"id":"22","protocolId":"95580.89","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81051297.698,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81051304.03899999,"settledSequence":69},{"id":"23","protocolId":"95580.90","method":"POST","path":"/rest/v1/rpc/read_user_notifications_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"8B79CD185B21774F6E865BE169EFA6BA","startedAtMs":81051399.416,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":71,"settledAtMs":81051412.91100001,"settledSequence":72},{"id":"24","protocolId":"0C663C4502D69077BB7E99E83FE201BE","method":"GET","path":"/","resourceType":"Document","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051450.489,"startedSequence":73,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81051455.166,"settledSequence":76},{"id":"25","protocolId":"95580.133","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051552.497,"startedSequence":78,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":86,"settledAtMs":81051565.663,"settledSequence":89},{"id":"26","protocolId":"95580.134","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051552.85399999,"startedSequence":79,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":84,"settledAtMs":81051564.607,"settledSequence":87},{"id":"27","protocolId":"95580.135","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051553.26,"startedSequence":80,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":85,"settledAtMs":81051566.11299999,"settledSequence":88},{"id":"28","protocolId":"95580.136","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051565.63599999,"startedSequence":81,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":90,"settledAtMs":81051573.484,"settledSequence":95},{"id":"29","protocolId":"95580.137","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051566.11099999,"startedSequence":82,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":94,"settledAtMs":81051574.616,"settledSequence":98},{"id":"30","protocolId":"95580.138","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051566.427,"startedSequence":83,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":96,"settledAtMs":81051575.2,"settledSequence":99},{"id":"31","protocolId":"95580.139","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051576.532,"startedSequence":91,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":101,"settledAtMs":81051594.438,"settledSequence":106},{"id":"32","protocolId":"95580.140","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051576.935,"startedSequence":92,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":100,"settledAtMs":81051591.71599999,"settledSequence":105},{"id":"33","protocolId":"95580.141","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051577.251,"startedSequence":93,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":102,"settledAtMs":81051608.948,"settledSequence":107},{"id":"34","protocolId":"95580.142","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051582.421,"startedSequence":97,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":104,"settledAtMs":81051591.548,"settledSequence":108},{"id":"35","protocolId":"95580.143","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051796.829,"startedSequence":103,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":109,"settledAtMs":81051808.144,"settledSequence":110},{"id":"36","protocolId":"95580.144","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051976.444,"startedSequence":111,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":114,"settledAtMs":81051996.441,"settledSequence":116},{"id":"37","protocolId":"95580.145","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81051977.806,"startedSequence":112,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":113,"settledAtMs":81051992.411,"settledSequence":115},{"id":"38","protocolId":"95580.172","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81052075.16399999,"startedSequence":117,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":118,"settledAtMs":81052092.26200001,"settledSequence":119},{"id":"39","protocolId":"95580.173","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81052105.776,"startedSequence":120,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":121,"settledAtMs":81052126.684,"settledSequence":122},{"id":"40","protocolId":"95580.174","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81052133.85100001,"startedSequence":123,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":124,"settledAtMs":81052155.981,"settledSequence":125},{"id":"41","protocolId":"95580.175","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"A6DEA109F3AA8B01E57E76A7DC8B0E9C","documentId":"0C663C4502D69077BB7E99E83FE201BE","startedAtMs":81052521.62,"startedSequence":126,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":127,"settledAtMs":81052529.154,"settledSequence":128}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"19457bcce190be627954843865545e3c70bd939c626000bc121960e8aeff3b82","matched":true,"value":{"sequence":129,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/3/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"1292ce46d0060b48614ec68ef36898e2bae44e9b6e8365c19beb0602590010a0","matched":true,"value":{"status":"completed","closeSequence":129,"startedSequence":130,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":131}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"3 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/checkpoints","valueSha256":"785a3b064cc7defca40ace13b6ae42ecc69a379acf8ad397e7cecbb50d10423b","matched":true,"value":[{"id":"target session outside first page","passed":true,"assertions":6},{"id":"notification opens the exact session and comment","passed":true,"assertions":6},{"id":"comment notification read receipt","passed":true,"assertions":2}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Source scope: 첫 피드20개 밖의 오래된 본인 세션을 댓글 알림으로 직접 조회하여 정확한 본문·댓글 시트를 열고 read_at을 저장하는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/steps/13","valueSha256":"05f49ebf858439053bdf8bfa4d014ef44a670bfe2f0638b2aa60f5ebf3bdc653","matched":true,"value":{"index":13,"parent":null,"category":"test.step","title":"target session outside first page","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":181,"column":5},"pollSampleLocations":null,"started":4247,"finished":4306,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Source scope: 첫 피드20개 밖의 오래된 본인 세션을 댓글 알림으로 직접 조회하여 정확한 본문·댓글 시트를 열고 read_at을 저장하는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/steps/43","valueSha256":"bfdf68a6590af535e0b3e24114d4bddf6f85e1ce5f9d2681a517ccc09309881a","matched":true,"value":{"index":43,"parent":null,"category":"test.step","title":"notification opens the exact session and comment","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":189,"column":5},"pollSampleLocations":null,"started":4307,"finished":4332,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Source scope: 첫 피드20개 밖의 오래된 본인 세션을 댓글 알림으로 직접 조회하여 정확한 본문·댓글 시트를 열고 read_at을 저장하는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/steps/56","valueSha256":"0093ea8a688bb8aa5cf1912a3e221bb11d0eb94faa359dd28ba530bcbca95f99","matched":true,"value":{"index":56,"parent":null,"category":"test.step","title":"comment notification read receipt","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":204,"column":5},"pollSampleLocations":null,"started":4333,"finished":4338,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"실제 댓글 시트의 대상 댓글 text node를 다른 운동의 댓글 문자열로 바꿔 동일 reader.includes 목표 판정이 깨지는지 확인한다. Scope limit: 잘못된 댓글 표시를 대표한다. 서버 조회 권한·중복조회·DB 저장 원자성 mutation을 수행한 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/controls/0/normalActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"실제 댓글 시트의 대상 댓글 text node를 다른 운동의 댓글 문자열로 바꿔 동일 reader.includes 목표 판정이 깨지는지 확인한다. Scope limit: 잘못된 댓글 표시를 대표한다. 서버 조회 권한·중복조회·DB 저장 원자성 mutation을 수행한 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/controls/0/negativeActual","valueSha256":"fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa","matched":true,"value":false},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"실제 댓글 시트의 대상 댓글 text node를 다른 운동의 댓글 문자열로 바꿔 동일 reader.includes 목표 판정이 깨지는지 확인한다. Scope limit: 잘못된 댓글 표시를 대표한다. 서버 조회 권한·중복조회·DB 저장 원자성 mutation을 수행한 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/controls/0/restoredActual","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"실제 댓글 시트의 대상 댓글 text node를 다른 운동의 댓글 문자열로 바꿔 동일 reader.includes 목표 판정이 깨지는지 확인한다. Scope limit: 잘못된 댓글 표시를 대표한다. 서버 조회 권한·중복조회·DB 저장 원자성 mutation을 수행한 것은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/controls/0","valueSha256":"076b7ee2be7fa05a6b92a55d6fe8f6e4e45a30e390ec5067da5017db5b2e5e3c","matched":true,"value":{"id":"viewport-notification-exact-comment","description":"알림에서 연 댓글 시트에 다른 운동의 댓글 내용이 표시되는 결함","boundary":"notification opens the exact session and comment","status":"passed","expected":true,"comparator":{"kind":"deepEqual"},"normalActual":true,"normal":{"matched":true},"negativeActual":false,"negative":{"matched":false,"applied":{"count":1,"textNodes":1}},"restoredActual":true,"restored":{"matched":true},"durationMs":45}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/cleanup","valueSha256":"c69f1750652a451abbb829ed9c0e514ce0c5458d29a90619471f6664145d939e","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":3},{"id":"control-viewport-notification-exact-comment","status":"passed","settled":true,"durationMs":4}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/fixture-cleanup-afterEach-84","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"This CASE's actual afterEach at e2e/group-design-notifications.spec.mjs:84 completes its account and cron-scope cleanup.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/quality/steps/60","valueSha256":"7ab2a028703a8dd86bdf2ae1c4608aa77723dfc4bfd9acced7decbe2a7d578a5","matched":true,"value":{"index":60,"parent":59,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\group-design-notifications.spec.mjs","line":84,"column":8},"pollSampleLocations":null,"started":4340,"finished":4341,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/2/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/durationMs","valueSha256":"136040f6ccedf6eee620407451ceefe7c93172d4386a0099758eff8e7ef1bbfe","matched":true,"value":4515},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/2/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/2/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/2/suites/0/specs/2/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/title","valueSha256":"b3e4fbced18e85cbd363358d239c95c209336a07cc70f9645617fc8725be133c","matched":true,"value":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/startedAt","valueSha256":"119ff188fb29020b59e086b1d53e5893ca1d07ba40075abf46136025d97a6408","matched":true,"value":"2026-09-09T20:03:38.207Z"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/finishedAt","valueSha256":"b23a1277b19844cb6fdf1aab97901a26ed9e3d205b9ebe3d810a78b6ae11d27f","matched":true,"value":"2026-09-09T20:03:42.722Z"},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/contexts/0/controls","valueSha256":"c4fc810f03c76339d908c4010d41b4f7223ffe6180c155b8390f639df7da0b20","matched":true,"value":[{"id":"viewport-notification-exact-comment","phase":"normal","at":"2026-09-09T20:03:42.233Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6"}]},{"id":"viewport-notification-exact-comment","phase":"inject-started","at":"2026-09-09T20:03:42.234Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6"}]},{"id":"viewport-notification-exact-comment","phase":"inject-finished","at":"2026-09-09T20:03:42.261Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6"}]},{"id":"viewport-notification-exact-comment","phase":"negative","at":"2026-09-09T20:03:42.265Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6"}]},{"id":"viewport-notification-exact-comment","phase":"restore-started","at":"2026-09-09T20:03:42.266Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6"}]},{"id":"viewport-notification-exact-comment","phase":"restore-finished","at":"2026-09-09T20:03:42.269Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6"}]},{"id":"viewport-notification-exact-comment","phase":"restored","at":"2026-09-09T20:03:42.273Z","pages":[{"page":"viewport-context-1/page-1","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"5c4147b6c85587df656f9ae161bde66f761896fe4063d24a1b74f47de934cf8b","matched":true,"value":[{"frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"B0F3E0279A8000B57EF31BDD2615B49D","path":"blank","kind":"initial","sequence":1},{"frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"8886609f36f0cef39a64e699dcb42b2a61d7d6f2fd6058d2a29f77ad7b56c4b6","matched":true,"value":[{"id":"1","protocolId":"3D8AED4F6DB0487B6936D2C49AF66CA6","method":"GET","path":"/","resourceType":"Document","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055353.48099999,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81055359.245,"settledSequence":5},{"id":"2","protocolId":"95460.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055558.087,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81055598.81300001,"settledSequence":20},{"id":"3","protocolId":"95460.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055558.31199999,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81055592.803,"settledSequence":17},{"id":"4","protocolId":"95460.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055558.542,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81055576.64299999,"settledSequence":14},{"id":"5","protocolId":"95460.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055568.451,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":24,"settledAtMs":81055602.519,"settledSequence":28},{"id":"6","protocolId":"95460.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055568.85700001,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":25,"settledAtMs":81055614.209,"settledSequence":29},{"id":"7","protocolId":"95460.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055569.17,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81055593,"settledSequence":18},{"id":"8","protocolId":"95460.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055601.78899999,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81055630.001,"settledSequence":31},{"id":"9","protocolId":"95460.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055602.107,"startedSequence":22,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81055642.886,"settledSequence":37},{"id":"10","protocolId":"95460.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055602.33399999,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81055648.12300001,"settledSequence":39},{"id":"11","protocolId":"95460.52","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055632.618,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":32,"settledAtMs":81055640.504,"settledSequence":34},{"id":"12","protocolId":"95460.53","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055632.969,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":35,"settledAtMs":81055647.911,"settledSequence":38},{"id":"13","protocolId":"95460.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055715.052,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81055723.772,"settledSequence":44},{"id":"14","protocolId":"95460.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055717.324,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81055725.573,"settledSequence":45},{"id":"15","protocolId":"95460.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055773.04800001,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81055795.468,"settledSequence":49},{"id":"16","protocolId":"95460.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055773.811,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81056653.701,"settledSequence":63},{"id":"17","protocolId":"95460.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055802.914,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81055829.685,"settledSequence":52},{"id":"18","protocolId":"95460.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81055833.996,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81055876.526,"settledSequence":55},{"id":"19","protocolId":"95460.86","method":"POST","path":"/rest/v1/rpc/list_following_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056285.27700001,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":57,"settledAtMs":81056292.999,"settledSequence":58},{"id":"20","protocolId":"95460.87","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056470.952,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81056483.244,"settledSequence":61},{"id":"21","protocolId":"95460.88","method":"POST","path":"/rest/v1/rpc/read_user_notifications_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056905.07900001,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":78,"settledAtMs":81056921.973,"settledSequence":79},{"id":"22","protocolId":"95460.89","method":"POST","path":"/rest/v1/rpc/list_session_comments_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056905.403,"startedSequence":65,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":74,"settledAtMs":81056917.30499999,"settledSequence":76},{"id":"23","protocolId":"95460.90","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056906.289,"startedSequence":66,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":69,"settledAtMs":81056914.028,"settledSequence":70},{"id":"24","protocolId":"95460.91","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056906.542,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":71,"settledAtMs":81056915.079,"settledSequence":72},{"id":"25","protocolId":"95460.92","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056906.81899999,"startedSequence":68,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":73,"settledAtMs":81056917.163,"settledSequence":75},{"id":"26","protocolId":"95460.93","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056919.234,"startedSequence":77,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":80,"settledAtMs":81056942.29,"settledSequence":81},{"id":"27","protocolId":"95460.94","method":"POST","path":"/rest/v1/rpc/list_session_comments_v1","resourceType":"Fetch","frameId":"98BB9515AB4F04E433500D5DC2EE9B5C","documentId":"3D8AED4F6DB0487B6936D2C49AF66CA6","startedAtMs":81056971.78,"startedSequence":82,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":83,"settledAtMs":81056982.591,"settledSequence":84}]},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"35dc8b8f01c7ffe15ab97dabc29da1995566a61444912901b344b4868913d02d","matched":true,"value":{"sequence":85,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/4/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"6b498b5a3377e81f26e2f70c647a21fecae43959b201fcc14f24ff8feda39cf6","matched":true,"value":{"status":"completed","closeSequence":85,"startedSequence":86,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":87}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"3 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/checkpoints","valueSha256":"18a89ac3bf0c33dea667702e1d49e2206fe1a6941320fd1ffd63891a923223fa","matched":true,"value":[{"id":"training style ironman persisted and restored","passed":true,"assertions":20},{"id":"training style functional persisted and restored","passed":true,"assertions":20},{"id":"exact training style writes","passed":true,"assertions":1}]},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Source scope: ironman/functional 두 직업 선택의 저장·서버값·재진입 카드·홈 직업명과 정확한 write2개를 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/steps/29","valueSha256":"0cc9dd892ac997c7c017c8585219d82fbe9e11a2bc280150b5039671c44911f9","matched":true,"value":{"index":29,"parent":null,"category":"test.step","title":"training style ironman persisted and restored","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":105,"column":7},"pollSampleLocations":null,"started":4431,"finished":4544,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Source scope: ironman/functional 두 직업 선택의 저장·서버값·재진입 카드·홈 직업명과 정확한 write2개를 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/steps/86","valueSha256":"810cc80b1fc57b137ea7db3b549342e261cef32ec5ae0240cafa725450095dab","matched":true,"value":{"index":86,"parent":null,"category":"test.step","title":"training style functional persisted and restored","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":105,"column":7},"pollSampleLocations":null,"started":4545,"finished":4668,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Source scope: ironman/functional 두 직업 선택의 저장·서버값·재진입 카드·홈 직업명과 정확한 write2개를 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/steps/148","valueSha256":"b0340416e6bcbcb23e623fbb6ba30ecf75c65a4b436aa560bba0dc8cbef0db1f","matched":true,"value":{"index":148,"parent":null,"category":"test.step","title":"exact training style writes","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":138,"column":5},"pollSampleLocations":null,"started":4669,"finished":4672,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"재진입한 functional 카드의 aria-checked를false로 바꾸고 동일 getAttribute reader와 true 기대값을 대조한다. Scope limit: 저장 후 선택 카드 표시의 대표 결함이다. 실제 DB값/기존 등급을 바꾼 제품 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/controls/0/normalActual","valueSha256":"18d10c7d2b4b04aaf04254d1ae5d655a5dc0407cbcdd5a8c3986e985370f36ee","matched":true,"value":"true"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"재진입한 functional 카드의 aria-checked를false로 바꾸고 동일 getAttribute reader와 true 기대값을 대조한다. Scope limit: 저장 후 선택 카드 표시의 대표 결함이다. 실제 DB값/기존 등급을 바꾼 제품 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/controls/0/negativeActual","valueSha256":"076de6e730df0b4c3860877a0f619c6ac11f8aefd78313ac793a2a703c026869","matched":true,"value":"false"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"재진입한 functional 카드의 aria-checked를false로 바꾸고 동일 getAttribute reader와 true 기대값을 대조한다. Scope limit: 저장 후 선택 카드 표시의 대표 결함이다. 실제 DB값/기존 등급을 바꾼 제품 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/controls/0/restoredActual","valueSha256":"18d10c7d2b4b04aaf04254d1ae5d655a5dc0407cbcdd5a8c3986e985370f36ee","matched":true,"value":"true"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"재진입한 functional 카드의 aria-checked를false로 바꾸고 동일 getAttribute reader와 true 기대값을 대조한다. Scope limit: 저장 후 선택 카드 표시의 대표 결함이다. 실제 DB값/기존 등급을 바꾼 제품 mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/controls/0","valueSha256":"3613bfe9fae6e01d9267f4964ed45c52f2448a7e9b3b783e2f2a5a99351654db","matched":true,"value":{"id":"viewport-training-style-restored-selection","description":"저장하고 재진입한 직업 카드가 현재 선택을 잃는 결함","boundary":"training style functional persisted and restored","status":"passed","expected":"true","comparator":{"kind":"deepEqual"},"normalActual":"true","normal":{"matched":true},"negativeActual":"false","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"true","restored":{"matched":true},"durationMs":39}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/cleanup","valueSha256":"17cea12ddd5fc4c4a68ab6945a71e4ae170dd4a1679e97746dbc1733a894f0aa","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":1},{"id":"control-viewport-training-style-restored-selection","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/fixture-cleanup-afterEach-63","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"This CASE's actual afterEach at e2e/profile-design-settings.spec.mjs:63 completes its account and cron-scope cleanup.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/quality/steps/151","valueSha256":"1cf5907512df8a94a3204cd40f6c0a4cab22e4164a685974c900290dc6e17064","matched":true,"value":{"index":151,"parent":150,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":63,"column":8},"pollSampleLocations":null,"started":4674,"finished":4675,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/0/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/durationMs","valueSha256":"14c4aee212bcfe7882f3dba39c894fbfed98d1328fcc06ca6c68f7c14b39eb79","matched":true,"value":10742},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/0/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/0/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/title","valueSha256":"099f5b5f2b7e06b79a3c2e0f2022f9e3fd4432d0edec8d61e2e79cb33c4a51d2","matched":true,"value":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/startedAt","valueSha256":"340f2a830557413274d8231b879f1daf71b2d44082acad81612a657384488400","matched":true,"value":"2026-09-09T20:03:43.113Z"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/finishedAt","valueSha256":"0cb97eb627fa6374faf01aa1fa787b1655174b1990fbf4dff5b8a97dbce88a1b","matched":true,"value":"2026-09-09T20:03:53.855Z"},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/contexts/0/controls","valueSha256":"c72acfdef4604207d9413ed2133eba491f0f0f5359e97a91eaa74f4be6ab2e55","matched":true,"value":[{"id":"viewport-training-style-restored-selection","phase":"normal","at":"2026-09-09T20:03:52.868Z","pages":[{"page":"viewport-context-1/page-1","documentId":"34BA8B6AF197370FE8F1CE866B2F359C"}]},{"id":"viewport-training-style-restored-selection","phase":"inject-started","at":"2026-09-09T20:03:52.868Z","pages":[{"page":"viewport-context-1/page-1","documentId":"34BA8B6AF197370FE8F1CE866B2F359C"}]},{"id":"viewport-training-style-restored-selection","phase":"inject-finished","at":"2026-09-09T20:03:52.894Z","pages":[{"page":"viewport-context-1/page-1","documentId":"34BA8B6AF197370FE8F1CE866B2F359C"}]},{"id":"viewport-training-style-restored-selection","phase":"negative","at":"2026-09-09T20:03:52.897Z","pages":[{"page":"viewport-context-1/page-1","documentId":"34BA8B6AF197370FE8F1CE866B2F359C"}]},{"id":"viewport-training-style-restored-selection","phase":"restore-started","at":"2026-09-09T20:03:52.897Z","pages":[{"page":"viewport-context-1/page-1","documentId":"34BA8B6AF197370FE8F1CE866B2F359C"}]},{"id":"viewport-training-style-restored-selection","phase":"restore-finished","at":"2026-09-09T20:03:52.900Z","pages":[{"page":"viewport-context-1/page-1","documentId":"34BA8B6AF197370FE8F1CE866B2F359C"}]},{"id":"viewport-training-style-restored-selection","phase":"restored","at":"2026-09-09T20:03:52.903Z","pages":[{"page":"viewport-context-1/page-1","documentId":"34BA8B6AF197370FE8F1CE866B2F359C"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"926bbcf4741dd7eb289e1f0baa6578a00ab223730275b519d2883f76c90109b4","matched":true,"value":[{"frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"90834F57C9786FC4070E5CE5781DAD2B","path":"blank","kind":"initial","sequence":1},{"frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","path":"/","kind":"committed","sequence":4},{"frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","path":"/","kind":"committed","sequence":66},{"frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","path":"/","kind":"committed","sequence":125}]},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"48193862206317112a7b291303ce78bf1eb6769ab5e334870312cfd3635578b2","matched":true,"value":[{"id":"1","protocolId":"09885857E61937E3DABEE5154D528E3A","method":"GET","path":"/","resourceType":"Document","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058626.056,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81058630.768,"settledSequence":5},{"id":"2","protocolId":"53768.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058834.571,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81058847.417,"settledSequence":17},{"id":"3","protocolId":"53768.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058834.91000001,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81058846.066,"settledSequence":16},{"id":"4","protocolId":"53768.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058835.395,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81058847.576,"settledSequence":18},{"id":"5","protocolId":"53768.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058847.916,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":23,"settledAtMs":81058857.579,"settledSequence":26},{"id":"6","protocolId":"53768.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058849.057,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":22,"settledAtMs":81058857.358,"settledSequence":25},{"id":"7","protocolId":"53768.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058849.61600001,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":27,"settledAtMs":81058864.03500001,"settledSequence":28},{"id":"8","protocolId":"53768.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058861.114,"startedSequence":19,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81058890.31099999,"settledSequence":36},{"id":"9","protocolId":"53768.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058861.73200001,"startedSequence":20,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81058886.106,"settledSequence":35},{"id":"10","protocolId":"53768.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058862.126,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81058906.117,"settledSequence":37},{"id":"11","protocolId":"53768.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058865.65599999,"startedSequence":24,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81058877.179,"settledSequence":34},{"id":"12","protocolId":"53768.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058919.833,"startedSequence":32,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81058926.774,"settledSequence":40},{"id":"13","protocolId":"53768.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058970.948,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81058977.242,"settledSequence":44},{"id":"14","protocolId":"53768.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81058973.71700001,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81058980.961,"settledSequence":45},{"id":"15","protocolId":"53768.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81059023.12699999,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81059039.279,"settledSequence":49},{"id":"16","protocolId":"53768.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81059023.935,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81059894.161,"settledSequence":57},{"id":"17","protocolId":"53768.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81059048.742,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81059071.17500001,"settledSequence":52},{"id":"18","protocolId":"53768.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81059074.421,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81059098.186,"settledSequence":55},{"id":"19","protocolId":"53768.98","method":"POST","path":"/rest/v1/rpc/update_profile_settings_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81060667.354,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81060691.882,"settledSequence":60},{"id":"20","protocolId":"53768.99","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"09885857E61937E3DABEE5154D528E3A","startedAtMs":81060693.893,"startedSequence":61,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81060717.28,"settledSequence":63},{"id":"21","protocolId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","method":"GET","path":"/","resourceType":"Document","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062196.963,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81062200.21599999,"settledSequence":67},{"id":"22","protocolId":"53768.142","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062272.615,"startedSequence":69,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":75,"settledAtMs":81062280.001,"settledSequence":78},{"id":"23","protocolId":"53768.143","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062272.838,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":77,"settledAtMs":81062280.43800001,"settledSequence":80},{"id":"24","protocolId":"53768.144","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062273.061,"startedSequence":71,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":76,"settledAtMs":81062280.285,"settledSequence":79},{"id":"25","protocolId":"53768.145","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062282.685,"startedSequence":72,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":81,"settledAtMs":81062287.067,"settledSequence":86},{"id":"26","protocolId":"53768.146","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062283.01,"startedSequence":73,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":85,"settledAtMs":81062288.765,"settledSequence":89},{"id":"27","protocolId":"53768.147","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062283.238,"startedSequence":74,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":87,"settledAtMs":81062289.278,"settledSequence":90},{"id":"28","protocolId":"53768.148","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062290.526,"startedSequence":82,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":95,"settledAtMs":81062304.54300001,"settledSequence":99},{"id":"29","protocolId":"53768.149","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062290.838,"startedSequence":83,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":91,"settledAtMs":81062298.702,"settledSequence":96},{"id":"30","protocolId":"53768.150","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062291.103,"startedSequence":84,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":93,"settledAtMs":81062302.393,"settledSequence":97},{"id":"31","protocolId":"53768.151","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062296.057,"startedSequence":88,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":94,"settledAtMs":81062303.225,"settledSequence":98},{"id":"32","protocolId":"53768.152","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062427.144,"startedSequence":92,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":100,"settledAtMs":81062431.884,"settledSequence":101},{"id":"33","protocolId":"53768.153","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062515.865,"startedSequence":102,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":105,"settledAtMs":81062524.83399999,"settledSequence":107},{"id":"34","protocolId":"53768.154","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062516.405,"startedSequence":103,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":104,"settledAtMs":81062523.34099999,"settledSequence":106},{"id":"35","protocolId":"53768.181","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062568.519,"startedSequence":108,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":109,"settledAtMs":81062584.567,"settledSequence":110},{"id":"36","protocolId":"53768.182","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062596.50400001,"startedSequence":111,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":112,"settledAtMs":81062623.46000001,"settledSequence":113},{"id":"37","protocolId":"53768.183","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81062630.77499999,"startedSequence":114,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":115,"settledAtMs":81062653.331,"settledSequence":116},{"id":"38","protocolId":"53768.212","method":"POST","path":"/rest/v1/rpc/update_profile_settings_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81064831.875,"startedSequence":117,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":118,"settledAtMs":81064844.362,"settledSequence":119},{"id":"39","protocolId":"53768.213","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"CC15DE4CCC987FB3EF4AA0C3075AF13F","startedAtMs":81064846.07699999,"startedSequence":120,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":121,"settledAtMs":81064862.43599999,"settledSequence":122},{"id":"40","protocolId":"34BA8B6AF197370FE8F1CE866B2F359C","method":"GET","path":"/","resourceType":"Document","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066324.293,"startedSequence":123,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":124,"settledAtMs":81066328.677,"settledSequence":126},{"id":"41","protocolId":"53768.256","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066400.444,"startedSequence":128,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":135,"settledAtMs":81066411.526,"settledSequence":138},{"id":"42","protocolId":"53768.257","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066400.644,"startedSequence":129,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":134,"settledAtMs":81066410.054,"settledSequence":137},{"id":"43","protocolId":"53768.258","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066400.85200001,"startedSequence":130,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":136,"settledAtMs":81066411.89299999,"settledSequence":139},{"id":"44","protocolId":"53768.259","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066408.515,"startedSequence":131,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":143,"settledAtMs":81066418.44,"settledSequence":151},{"id":"45","protocolId":"53768.260","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066408.939,"startedSequence":132,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":144,"settledAtMs":81066418.56,"settledSequence":152},{"id":"46","protocolId":"53768.261","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066409.199,"startedSequence":133,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":145,"settledAtMs":81066419.276,"settledSequence":153},{"id":"47","protocolId":"53768.262","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066417.254,"startedSequence":140,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":146,"settledAtMs":81066431.963,"settledSequence":154},{"id":"48","protocolId":"53768.263","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066417.51699999,"startedSequence":141,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":149,"settledAtMs":81066428.922,"settledSequence":155},{"id":"49","protocolId":"53768.264","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066417.771,"startedSequence":142,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":150,"settledAtMs":81066443.676,"settledSequence":156},{"id":"50","protocolId":"53768.265","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066557.845,"startedSequence":147,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":157,"settledAtMs":81066565.939,"settledSequence":159},{"id":"51","protocolId":"53768.266","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066558.249,"startedSequence":148,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":158,"settledAtMs":81066566.083,"settledSequence":160},{"id":"52","protocolId":"53768.267","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066666.90100001,"startedSequence":161,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":164,"settledAtMs":81066672.307,"settledSequence":166},{"id":"53","protocolId":"53768.268","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066667.677,"startedSequence":162,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":163,"settledAtMs":81066672.202,"settledSequence":165},{"id":"54","protocolId":"53768.295","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066801.174,"startedSequence":167,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":168,"settledAtMs":81066820.56799999,"settledSequence":169},{"id":"55","protocolId":"53768.296","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066836.36,"startedSequence":170,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":171,"settledAtMs":81066855.50799999,"settledSequence":172},{"id":"56","protocolId":"53768.297","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"6911F7BEEDFADE8151E3DDE33F9ADB59","documentId":"34BA8B6AF197370FE8F1CE866B2F359C","startedAtMs":81066862.353,"startedSequence":173,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":174,"settledAtMs":81066880.58500001,"settledSequence":175}]},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"c8ee90541f1fafbe364e13fb0948ed76e634f6252555a18254009b1c1e0725d5","matched":true,"value":{"sequence":176,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/5/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"32015a0529cb50f31455506d63542ef4e78d8e51caecee2780470d955fafe8f1","matched":true,"value":{"status":"completed","closeSequence":176,"startedSequence":177,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":178}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"3 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/checkpoints","valueSha256":"3b55cfd8ac3922b8c66569c746258736092f1033d5b509e5b26cb43a1c5cfaef","matched":true,"value":[{"id":"pending body update preserves inputs and server state","passed":true,"assertions":11},{"id":"body update commits atomically","passed":true,"assertions":7},{"id":"body values survive reload","passed":true,"assertions":8}]},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Source scope: 성별 null·키179.5·체중81.2를 하나의 RPC로 저장하고 pending 이전 서버값·불변 근육/체지방·reload 입력을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/steps/55","valueSha256":"0b858ab6a98ce2929d1834922a38eec5b86129ac49d917db889c483875086978","matched":true,"value":{"index":55,"parent":null,"category":"test.step","title":"pending body update preserves inputs and server state","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":173,"column":7},"pollSampleLocations":null,"started":4816,"finished":4843,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Source scope: 성별 null·키179.5·체중81.2를 하나의 RPC로 저장하고 pending 이전 서버값·불변 근육/체지방·reload 입력을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/steps/69","valueSha256":"ef8c00eb7dad5074c618fd44ce54c781d1416f8937b0b5e71a78bbf35f0eb3e0","matched":true,"value":{"index":69,"parent":null,"category":"test.step","title":"body update commits atomically","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":186,"column":7},"pollSampleLocations":null,"started":4844,"finished":4860,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Source scope: 성별 null·키179.5·체중81.2를 하나의 RPC로 저장하고 pending 이전 서버값·불변 근육/체지방·reload 입력을 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/steps/77","valueSha256":"f5d068590b4601deb801d75763ae8a250cd53000b8bccfdba49bb194808ded27","matched":true,"value":{"index":77,"parent":null,"category":"test.step","title":"body values survive reload","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":204,"column":5},"pollSampleLocations":null,"started":4861,"finished":4942,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"재진입 후 실제 체중 입력 value를0으로 바꿔 동일 inputValue reader가 저장 기대81.2와 불일치하는지 검사한다. Scope limit: 재진입 입력의 잘못된 체중 표시를 대표한다. DB 원자성·중복 방지 제약을 제거한 mutant 증거는 없다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/controls/0/normalActual","valueSha256":"e18314f2fb1ec8e17610a322c82d3a400b5b1e0a4510a925f3a974ddb0fd5cb6","matched":true,"value":"81.2"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"재진입 후 실제 체중 입력 value를0으로 바꿔 동일 inputValue reader가 저장 기대81.2와 불일치하는지 검사한다. Scope limit: 재진입 입력의 잘못된 체중 표시를 대표한다. DB 원자성·중복 방지 제약을 제거한 mutant 증거는 없다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/controls/0/negativeActual","valueSha256":"98089e6d36f78e9766c9ea34d5acb3611f3a92cd81c5eb102095d924ffc7d08b","matched":true,"value":"0"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"재진입 후 실제 체중 입력 value를0으로 바꿔 동일 inputValue reader가 저장 기대81.2와 불일치하는지 검사한다. Scope limit: 재진입 입력의 잘못된 체중 표시를 대표한다. DB 원자성·중복 방지 제약을 제거한 mutant 증거는 없다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/controls/0/restoredActual","valueSha256":"e18314f2fb1ec8e17610a322c82d3a400b5b1e0a4510a925f3a974ddb0fd5cb6","matched":true,"value":"81.2"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"재진입 후 실제 체중 입력 value를0으로 바꿔 동일 inputValue reader가 저장 기대81.2와 불일치하는지 검사한다. Scope limit: 재진입 입력의 잘못된 체중 표시를 대표한다. DB 원자성·중복 방지 제약을 제거한 mutant 증거는 없다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/controls/0","valueSha256":"9b0fd9b69204b3935b8d1868238e65652d1d5c6bde7e8931622799579471b731","matched":true,"value":{"id":"viewport-body-restored-weight","description":"저장하고 재진입한 체중 입력이 원래 저장값과 달라지는 결함","boundary":"body values survive reload","status":"passed","expected":"81.2","comparator":{"kind":"deepEqual"},"normalActual":"81.2","normal":{"matched":true},"negativeActual":"0","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"81.2","restored":{"matched":true},"durationMs":29}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/cleanup","valueSha256":"5b57c0ac66d6fd4bce5711847051c9c99eeb3f6931463199b28594e18fdc1954","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":1},{"id":"control-viewport-body-restored-weight","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/fixture-cleanup-afterEach-63","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"This CASE's actual afterEach at e2e/profile-design-settings.spec.mjs:63 completes its account and cron-scope cleanup.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/quality/steps/119","valueSha256":"b7386106dd65da1365c454b80cb7632c073303d897a07328a5b2f45b84b19ac5","matched":true,"value":{"index":119,"parent":118,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\profile-design-settings.spec.mjs","line":63,"column":8},"pollSampleLocations":null,"started":4944,"finished":4945,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/1/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/durationMs","valueSha256":"8caeb7558c53eb3f06fb18206fb01cc4eace66aa8fe8cd49495599966622fb10","matched":true,"value":5281},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/1/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/1/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/3/suites/0/specs/1/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/title","valueSha256":"5fd289c7137c1558a7e8297427b9694749f86635ff5f47e176fb15a05bd7267a","matched":true,"value":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/startedAt","valueSha256":"f9fd4db38e4e03bca520c40108b330fd7788ded57ec57fa241c823e438cf8416","matched":true,"value":"2026-09-09T20:03:53.868Z"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/finishedAt","valueSha256":"7721025fee4e0335af8c25cdc54fa822455861a167a4d1a5216c736e3e77a806","matched":true,"value":"2026-09-09T20:03:59.147Z"},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/contexts/0/controls","valueSha256":"093f728e9856b6da7c023d1e6833688a03b1c4df3d817e4a779f58978ba0d372","matched":true,"value":[{"id":"viewport-body-restored-weight","phase":"normal","at":"2026-09-09T20:03:58.891Z","pages":[{"page":"viewport-context-1/page-1","documentId":"984101F618A788819FB2B5B72EAA29D1"}]},{"id":"viewport-body-restored-weight","phase":"inject-started","at":"2026-09-09T20:03:58.891Z","pages":[{"page":"viewport-context-1/page-1","documentId":"984101F618A788819FB2B5B72EAA29D1"}]},{"id":"viewport-body-restored-weight","phase":"inject-finished","at":"2026-09-09T20:03:58.910Z","pages":[{"page":"viewport-context-1/page-1","documentId":"984101F618A788819FB2B5B72EAA29D1"}]},{"id":"viewport-body-restored-weight","phase":"negative","at":"2026-09-09T20:03:58.912Z","pages":[{"page":"viewport-context-1/page-1","documentId":"984101F618A788819FB2B5B72EAA29D1"}]},{"id":"viewport-body-restored-weight","phase":"restore-started","at":"2026-09-09T20:03:58.913Z","pages":[{"page":"viewport-context-1/page-1","documentId":"984101F618A788819FB2B5B72EAA29D1"}]},{"id":"viewport-body-restored-weight","phase":"restore-finished","at":"2026-09-09T20:03:58.915Z","pages":[{"page":"viewport-context-1/page-1","documentId":"984101F618A788819FB2B5B72EAA29D1"}]},{"id":"viewport-body-restored-weight","phase":"restored","at":"2026-09-09T20:03:58.918Z","pages":[{"page":"viewport-context-1/page-1","documentId":"984101F618A788819FB2B5B72EAA29D1"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"57d27039874a11bb04d40cf76afac6fe9b772d7ad674e8a39b5a27c7902d4cf8","matched":true,"value":[{"frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"CCD393F6DBFA9696912F6B387FC24453","path":"blank","kind":"initial","sequence":1},{"frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","path":"/","kind":"committed","sequence":4},{"frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","path":"/","kind":"committed","sequence":72}]},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"af2a09f3537267334d172e366a058f266059e47d1d6aef3975e18074e7763183","matched":true,"value":[{"id":"1","protocolId":"E00599FBC2AA0774511FC73E1AA60EFF","method":"GET","path":"/","resourceType":"Document","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069438.72999999,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81069443.146,"settledSequence":5},{"id":"2","protocolId":"93504.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069602.065,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81069615.96900001,"settledSequence":20},{"id":"3","protocolId":"93504.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069602.265,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81069614.031,"settledSequence":19},{"id":"4","protocolId":"93504.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069602.531,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81069616.048,"settledSequence":21},{"id":"5","protocolId":"93504.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069612.211,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81069620.334,"settledSequence":22},{"id":"6","protocolId":"93504.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069612.70899999,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81069620.94199999,"settledSequence":23},{"id":"7","protocolId":"93504.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069613.32699999,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81069622.042,"settledSequence":24},{"id":"8","protocolId":"93504.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069630.055,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81069645.854,"settledSequence":36},{"id":"9","protocolId":"93504.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069630.463,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81069641.267,"settledSequence":35},{"id":"10","protocolId":"93504.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069630.70199999,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81069651.112,"settledSequence":37},{"id":"11","protocolId":"93504.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069634.841,"startedSequence":28,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81069641.126,"settledSequence":34},{"id":"12","protocolId":"93504.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069659.348,"startedSequence":32,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81069667.308,"settledSequence":41},{"id":"13","protocolId":"93504.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069712.412,"startedSequence":39,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81069721.43200001,"settledSequence":44},{"id":"14","protocolId":"93504.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069714.701,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81069721.983,"settledSequence":45},{"id":"15","protocolId":"93504.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069764.771,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81069783.509,"settledSequence":49},{"id":"16","protocolId":"93504.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069765.96000001,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81070564.564,"settledSequence":57},{"id":"17","protocolId":"93504.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069791.914,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81069818.889,"settledSequence":52},{"id":"18","protocolId":"93504.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81069822.292,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81069848.224,"settledSequence":55},{"id":"19","protocolId":"93504.86","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81070813.82900001,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81070891.743,"settledSequence":63},{"id":"20","protocolId":"93504.87","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81070814.12799999,"startedSequence":59,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":60,"settledAtMs":81070826.61400001,"settledSequence":61},{"id":"21","protocolId":"93504.88","method":"POST","path":"/rest/v1/rpc/update_profile_settings_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81071550.64,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81071603.369,"settledSequence":66},{"id":"22","protocolId":"93504.89","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","startedAtMs":81071605.31,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81071621.929,"settledSequence":69},{"id":"23","protocolId":"984101F618A788819FB2B5B72EAA29D1","method":"GET","path":"/","resourceType":"Document","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071787.67799999,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":71,"settledAtMs":81071790.455,"settledSequence":73},{"id":"24","protocolId":"93504.132","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071872.707,"startedSequence":75,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":82,"settledAtMs":81071879.465,"settledSequence":85},{"id":"25","protocolId":"93504.133","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071872.949,"startedSequence":76,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":81,"settledAtMs":81071878.402,"settledSequence":84},{"id":"26","protocolId":"93504.134","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071873.15,"startedSequence":77,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":83,"settledAtMs":81071880.23300001,"settledSequence":86},{"id":"27","protocolId":"93504.135","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071883.527,"startedSequence":78,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":87,"settledAtMs":81071888.34,"settledSequence":93},{"id":"28","protocolId":"93504.136","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071883.847,"startedSequence":79,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":89,"settledAtMs":81071888.61199999,"settledSequence":95},{"id":"29","protocolId":"93504.137","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071884.049,"startedSequence":80,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":88,"settledAtMs":81071888.54499999,"settledSequence":94},{"id":"30","protocolId":"93504.138","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071891.59899999,"startedSequence":90,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":99,"settledAtMs":81071906.854,"settledSequence":103},{"id":"31","protocolId":"93504.139","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071892.02,"startedSequence":91,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":97,"settledAtMs":81071901.038,"settledSequence":101},{"id":"32","protocolId":"93504.140","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071892.326,"startedSequence":92,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":100,"settledAtMs":81071911.036,"settledSequence":104},{"id":"33","protocolId":"93504.141","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81071898.537,"startedSequence":96,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":98,"settledAtMs":81071904.878,"settledSequence":102},{"id":"34","protocolId":"93504.142","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81072036.231,"startedSequence":105,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":106,"settledAtMs":81072041.663,"settledSequence":109},{"id":"35","protocolId":"93504.143","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81072132.14,"startedSequence":107,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":110,"settledAtMs":81072137.405,"settledSequence":111},{"id":"36","protocolId":"93504.144","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81072132.72399999,"startedSequence":108,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":112,"settledAtMs":81072139.23699999,"settledSequence":113},{"id":"37","protocolId":"93504.171","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81072190.017,"startedSequence":114,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":115,"settledAtMs":81072206.869,"settledSequence":116},{"id":"38","protocolId":"93504.172","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81072221.74700001,"startedSequence":117,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":118,"settledAtMs":81072242.428,"settledSequence":119},{"id":"39","protocolId":"93504.173","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81072248.666,"startedSequence":120,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":121,"settledAtMs":81072269.182,"settledSequence":122},{"id":"40","protocolId":"93504.174","method":"GET","path":"/auth/v1/user","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81073019.78099999,"startedSequence":123,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":127,"settledAtMs":81073095.174,"settledSequence":128},{"id":"41","protocolId":"93504.175","method":"GET","path":"/rest/v1/exercises","resourceType":"Fetch","frameId":"D6126C1BF8139455E8629712BB82E9C0","documentId":"984101F618A788819FB2B5B72EAA29D1","startedAtMs":81073020.07100001,"startedSequence":124,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":125,"settledAtMs":81073027.82000001,"settledSequence":126}]},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/injection-0-0-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Exact real held request and declared phase timeline; an aborted old request proves cancellation protection, not delivery of its payload to JavaScript.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/contexts/0/pages/0/injections/0","valueSha256":"335e1ea1917522561153a65fef6bd632372f1e94b28268121b262ed1c9f95eac","matched":true,"value":{"id":"profile-body-pending","method":"POST","path":"/rest/v1/rpc/update_profile_settings_v1","page":"viewport-context-1/page-1","requestId":"21","protocolId":"93504.88","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","phases":[{"phase":"registered","at":"2026-09-09T20:03:56.726Z","currentDocumentId":"E00599FBC2AA0774511FC73E1AA60EFF","requestId":null,"protocolId":null,"documentId":null,"terminal":null,"responseStatus":null},{"phase":"held","at":"2026-09-09T20:03:56.779Z","currentDocumentId":"E00599FBC2AA0774511FC73E1AA60EFF","requestId":"21","protocolId":"93504.88","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","terminal":null,"responseStatus":null},{"phase":"released","at":"2026-09-09T20:03:56.808Z","currentDocumentId":"E00599FBC2AA0774511FC73E1AA60EFF","requestId":"21","protocolId":"93504.88","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","terminal":null,"responseStatus":null},{"phase":"committed-values-verified","at":"2026-09-09T20:03:57.005Z","currentDocumentId":"E00599FBC2AA0774511FC73E1AA60EFF","requestId":"21","protocolId":"93504.88","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","terminal":"finished","responseStatus":200},{"phase":"route-disposed","at":"2026-09-09T20:03:57.007Z","currentDocumentId":"E00599FBC2AA0774511FC73E1AA60EFF","requestId":"21","protocolId":"93504.88","documentId":"E00599FBC2AA0774511FC73E1AA60EFF","terminal":"finished","responseStatus":200}],"startedAtMs":81071550.64}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"19457bcce190be627954843865545e3c70bd939c626000bc121960e8aeff3b82","matched":true,"value":{"sequence":129,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/6/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"1292ce46d0060b48614ec68ef36898e2bae44e9b6e8365c19beb0602590010a0","matched":true,"value":{"status":"completed","closeSequence":129,"startedSequence":130,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":131}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/checkpoints","valueSha256":"38ed1430ec957148f75bdef07706ad15dc2283127cfe0981fe8eb3cee642055f","matched":true,"value":[{"id":"inactive report has no requests","passed":true,"assertions":1},{"id":"annual report exact data and request","passed":true,"assertions":19},{"id":"detail stack preserves annual report","passed":true,"assertions":24},{"id":"current month exact data and request","passed":true,"assertions":19},{"id":"previous month exact data and request","passed":true,"assertions":17}]},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Source scope: 연간→현재월→이전월 선택마다 필요한 요청만 발생하고 해당 payload의 지표·4종10bin을 UI에 연결하며 상세 스택 왕복이 기간을 바꾸지 않는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/steps/76","valueSha256":"a60570ec1427b2432dfb92312dae8f0635d4ffd37421d6dc962da5ebf4b0c2c5","matched":true,"value":{"index":76,"parent":52,"category":"test.step","title":"inactive report has no requests","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":135,"column":5},"pollSampleLocations":null,"started":5127,"finished":5130,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Source scope: 연간→현재월→이전월 선택마다 필요한 요청만 발생하고 해당 payload의 지표·4종10bin을 UI에 연결하며 상세 스택 왕복이 기간을 바꾸지 않는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/steps/79","valueSha256":"f6d2b86d9feb01bdac3c255fef6de4473936acf9ae331ed63e440a39f2f39070","matched":true,"value":{"index":79,"parent":null,"category":"test.step","title":"annual report exact data and request","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":181,"column":5},"pollSampleLocations":null,"started":5135,"finished":5210,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Source scope: 연간→현재월→이전월 선택마다 필요한 요청만 발생하고 해당 payload의 지표·4종10bin을 UI에 연결하며 상세 스택 왕복이 기간을 바꾸지 않는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/steps/134","valueSha256":"b41318c81ba5ea2a531a6753cb102f43d994101aa61da10308a68c620d156e1a","matched":true,"value":{"index":134,"parent":null,"category":"test.step","title":"detail stack preserves annual report","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":189,"column":5},"pollSampleLocations":null,"started":5245,"finished":5310,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Source scope: 연간→현재월→이전월 선택마다 필요한 요청만 발생하고 해당 payload의 지표·4종10bin을 UI에 연결하며 상세 스택 왕복이 기간을 바꾸지 않는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/steps/167","valueSha256":"20e2a32d2271456221133f25b1856476eadf3240d1e93bbfa99993598d9155c8","matched":true,"value":{"index":167,"parent":null,"category":"test.step","title":"current month exact data and request","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":208,"column":5},"pollSampleLocations":null,"started":5311,"finished":5390,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Source scope: 연간→현재월→이전월 선택마다 필요한 요청만 발생하고 해당 payload의 지표·4종10bin을 UI에 연결하며 상세 스택 왕복이 기간을 바꾸지 않는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/steps/207","valueSha256":"b6d8e0c8e50e364fb6181bdf56895b37794879f2d607ab9591bb8f9029c165e6","matched":true,"value":{"index":207,"parent":null,"category":"test.step","title":"previous month exact data and request","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":213,"column":5},"pollSampleLocations":null,"started":5391,"finished":5442,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"이전월 제목을 잘못된 기간 문자열로 교체하고 동일 innerText.trim reader와 독립 previousMonthLabel을 비교한다. Scope limit: 선택기간 제목 불일치의 대표 DOM 결함이다. 네 histogram 전체의 계산/바인딩 각각을 변조한 증거는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/controls/0/normalActual","valueSha256":"61f7fa967818fb1b863b64da785c1ceff92366dd3b08e5f43c382ebbaadf2ab2","matched":true,"value":"2026년 8월"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"이전월 제목을 잘못된 기간 문자열로 교체하고 동일 innerText.trim reader와 독립 previousMonthLabel을 비교한다. Scope limit: 선택기간 제목 불일치의 대표 DOM 결함이다. 네 histogram 전체의 계산/바인딩 각각을 변조한 증거는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/controls/0/negativeActual","valueSha256":"daa1a025c75b29f2e48b772f610d0ea63252c6a733afd79921cd1366c1db3b46","matched":true,"value":"선택하지 않은 잘못된 기간"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"이전월 제목을 잘못된 기간 문자열로 교체하고 동일 innerText.trim reader와 독립 previousMonthLabel을 비교한다. Scope limit: 선택기간 제목 불일치의 대표 DOM 결함이다. 네 histogram 전체의 계산/바인딩 각각을 변조한 증거는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/controls/0/restoredActual","valueSha256":"61f7fa967818fb1b863b64da785c1ceff92366dd3b08e5f43c382ebbaadf2ab2","matched":true,"value":"2026년 8월"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"이전월 제목을 잘못된 기간 문자열로 교체하고 동일 innerText.trim reader와 독립 previousMonthLabel을 비교한다. Scope limit: 선택기간 제목 불일치의 대표 DOM 결함이다. 네 histogram 전체의 계산/바인딩 각각을 변조한 증거는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/controls/0","valueSha256":"effd50f83e6e680f57b227457eb3542d8354db5b6ca5ca7a4605f6f009eee81b","matched":true,"value":{"id":"viewport-report-selected-period-label","description":"이동한 월과 화면의 기간 제목이 불일치하는 결함","boundary":"previous month exact data and request","status":"passed","expected":"2026년 8월","comparator":{"kind":"deepEqual"},"normalActual":"2026년 8월","normal":{"matched":true},"negativeActual":"선택하지 않은 잘못된 기간","negative":{"matched":false,"applied":{"count":1,"textNodes":1}},"restoredActual":"2026년 8월","restored":{"matched":true},"durationMs":24}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/quality/cleanup","valueSha256":"8927a591bcc76d15d1a4242142ef00f3b8ea71b37a40057bec0f4953852b1a34","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":1},{"id":"control-viewport-report-selected-period-label","status":"passed","settled":true,"durationMs":3}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/fixture-cleanup-afterAll-114","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"This actual shared suite afterAll at e2e/report-design-detail.spec.mjs:114 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/steps/121","valueSha256":"bf3bbf5bef1c58af914a1e48a68c69cc472849552ee448071c8a736dce5d6b5e","matched":true,"value":{"index":121,"parent":105,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":114,"column":8},"pollSampleLocations":null,"started":6084,"finished":6095,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/0/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/durationMs","valueSha256":"13875e7f1f8430b4cef0a4bc25f8a6a3010ab44f17c0e73ae87a60e7e3a578cb","matched":true,"value":5048},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/0/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/0/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/0/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/title","valueSha256":"c5231052bd94cb2c428f70c7cb7205e1149100e1b51d9662f8d99815e60caa5a","matched":true,"value":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/startedAt","valueSha256":"3c210c9e880f223f9bfad22d1ee721b8352d965f23ceb0358055d6c985c0ea14","matched":true,"value":"2026-09-09T20:04:01.907Z"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/finishedAt","valueSha256":"ea8f68b949996b4a09a0f16bbe50b018a9d62124886036e32f179d1e2dc356e3","matched":true,"value":"2026-09-09T20:04:06.956Z"},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/contexts/0/controls","valueSha256":"5a7440047fa00b3e48a6b00f7bacf317e93535eb5a756873ed56436697586edd","matched":true,"value":[{"id":"viewport-report-selected-period-label","phase":"normal","at":"2026-09-09T20:04:06.916Z","pages":[{"page":"viewport-context-1/page-1","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D"}]},{"id":"viewport-report-selected-period-label","phase":"inject-started","at":"2026-09-09T20:04:06.917Z","pages":[{"page":"viewport-context-1/page-1","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D"}]},{"id":"viewport-report-selected-period-label","phase":"inject-finished","at":"2026-09-09T20:04:06.925Z","pages":[{"page":"viewport-context-1/page-1","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D"}]},{"id":"viewport-report-selected-period-label","phase":"negative","at":"2026-09-09T20:04:06.929Z","pages":[{"page":"viewport-context-1/page-1","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D"}]},{"id":"viewport-report-selected-period-label","phase":"restore-started","at":"2026-09-09T20:04:06.929Z","pages":[{"page":"viewport-context-1/page-1","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D"}]},{"id":"viewport-report-selected-period-label","phase":"restore-finished","at":"2026-09-09T20:04:06.932Z","pages":[{"page":"viewport-context-1/page-1","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D"}]},{"id":"viewport-report-selected-period-label","phase":"restored","at":"2026-09-09T20:04:06.937Z","pages":[{"page":"viewport-context-1/page-1","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"4a25f0ecc7b0addda25c66b0d020fe93eb46e2a9fbd1225ece398cd566a0ccba","matched":true,"value":[{"frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"762895F8E56462A0F2A367A61DEB98D6","path":"blank","kind":"initial","sequence":1},{"frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"e481f0923316b26b8d30359eb2eb62573d9b0b500ef15b02044caf2db9d60a2c","matched":true,"value":[{"id":"1","protocolId":"CC5BDB101E8033B8D74BDE3AAC855F4D","method":"GET","path":"/","resourceType":"Document","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81076784.025,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81076789.14,"settledSequence":5},{"id":"2","protocolId":"21772.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077001.502,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81077036.291,"settledSequence":18},{"id":"3","protocolId":"21772.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077001.85499999,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81077014.262,"settledSequence":14},{"id":"4","protocolId":"21772.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077002.171,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81077043.082,"settledSequence":20},{"id":"5","protocolId":"21772.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077014.66,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81077024.03299999,"settledSequence":16},{"id":"6","protocolId":"21772.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077015.00299999,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":25,"settledAtMs":81077048.262,"settledSequence":29},{"id":"7","protocolId":"21772.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077015.27499999,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":24,"settledAtMs":81077048.012,"settledSequence":28},{"id":"8","protocolId":"21772.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077048.69399999,"startedSequence":21,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81077081.701,"settledSequence":32},{"id":"9","protocolId":"21772.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077049.083,"startedSequence":22,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81077097.907,"settledSequence":39},{"id":"10","protocolId":"21772.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077049.38,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81077087.367,"settledSequence":34},{"id":"11","protocolId":"21772.52","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077083.66800001,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81077092.449,"settledSequence":37},{"id":"12","protocolId":"21772.53","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077084.172,"startedSequence":27,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":35,"settledAtMs":81077097.056,"settledSequence":38},{"id":"13","protocolId":"21772.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077184.498,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81077193.256,"settledSequence":44},{"id":"14","protocolId":"21772.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077185.87699999,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81077193.348,"settledSequence":45},{"id":"15","protocolId":"21772.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077239.735,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81077270.457,"settledSequence":49},{"id":"16","protocolId":"21772.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077244.07499999,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81078219.395,"settledSequence":60},{"id":"17","protocolId":"21772.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077280.79,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81077308.222,"settledSequence":52},{"id":"18","protocolId":"21772.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81077311.612,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81077356.59300001,"settledSequence":55},{"id":"19","protocolId":"21772.86","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81078052.309,"startedSequence":56,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":57,"settledAtMs":81078072.826,"settledSequence":58},{"id":"20","protocolId":"21772.87","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81079022.82100001,"startedSequence":61,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81079059.954,"settledSequence":63},{"id":"21","protocolId":"21772.88","method":"POST","path":"/rest/v1/rpc/get_session_detail","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81079441.024,"startedSequence":64,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":65,"settledAtMs":81079495.8,"settledSequence":66},{"id":"22","protocolId":"21772.89","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81080933.63,"startedSequence":67,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":68,"settledAtMs":81080941.215,"settledSequence":69},{"id":"23","protocolId":"21772.90","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"39E4DD6FF6D7FFA17CBEEC5AAED88A7F","documentId":"CC5BDB101E8033B8D74BDE3AAC855F4D","startedAtMs":81081600.31300001,"startedSequence":70,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":71,"settledAtMs":81081610.808,"settledSequence":72}]},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"293e9220a69ec2cefec8116da0950e0ee5737f950c04258270fbd1efac7d06c9","matched":true,"value":{"sequence":73,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/7/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"4a0e20b13a3358a9ad070cd066cb83b8c5829f87d90be5aa4f88c51a89336b06","matched":true,"value":{"status":"completed","closeSequence":73,"startedSequence":74,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":75}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"5 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/checkpoints","valueSha256":"e30da0683f04eeadf93cec783206df54f30345da0c4770604535850208667567","matched":true,"value":[{"id":"inactive report has no requests","passed":true,"assertions":1},{"id":"initial month data","passed":true,"assertions":18},{"id":"older month response is held","passed":true,"assertions":6},{"id":"new annual selection wins","passed":true,"assertions":18},{"id":"late month response cannot replace annual data","passed":true,"assertions":18}]},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Source scope: 8월의 실제 서버 응답을 보류한 동안 연간으로 선택을 바꾸고 늦은 응답을 해제해도 연간 scope/지표가 유지되는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/steps/27","valueSha256":"596ce788ce632db6873407f5ff600633cdf05915a0c187de0059d6cc8bcb3646","matched":true,"value":{"index":27,"parent":1,"category":"test.step","title":"inactive report has no requests","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":135,"column":5},"pollSampleLocations":null,"started":5527,"finished":5530,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Source scope: 8월의 실제 서버 응답을 보류한 동안 연간으로 선택을 바꾸고 늦은 응답을 해제해도 연간 scope/지표가 유지되는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/steps/30","valueSha256":"ecb42decb2bfa308ea047e9269c81c2948bab5a947be769064eb43237dd31a20","matched":true,"value":{"index":30,"parent":null,"category":"test.step","title":"initial month data","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":228,"column":5},"pollSampleLocations":null,"started":5535,"finished":5612,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Source scope: 8월의 실제 서버 응답을 보류한 동안 연간으로 선택을 바꾸고 늦은 응답을 해제해도 연간 scope/지표가 유지되는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/steps/69","valueSha256":"04a9a70a534764692c213f4f7407fd7d83b1aecb9c5454b8840983f641c10469","matched":true,"value":{"index":69,"parent":null,"category":"test.step","title":"older month response is held","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":256,"column":7},"pollSampleLocations":null,"started":5613,"finished":5668,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Source scope: 8월의 실제 서버 응답을 보류한 동안 연간으로 선택을 바꾸고 늦은 응답을 해제해도 연간 scope/지표가 유지되는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/steps/97","valueSha256":"fe54a932ab1c9858db46bd4d5b3b7a857865fa32c276df684dd8da7f3cbdbeb6","matched":true,"value":{"index":97,"parent":null,"category":"test.step","title":"new annual selection wins","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":266,"column":7},"pollSampleLocations":null,"started":5669,"finished":5746,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-4","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Source scope: 8월의 실제 서버 응답을 보류한 동안 연간으로 선택을 바꾸고 늦은 응답을 해제해도 연간 scope/지표가 유지되는지 검사한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/steps/136","valueSha256":"ec956cd1956fe119a5b140b4eb8510ff48a4b2a620c04f01ec9b239d447bc638","matched":true,"value":{"index":136,"parent":null,"category":"test.step","title":"late month response cannot replace annual data","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":270,"column":7},"pollSampleLocations":null,"started":5747,"finished":5810,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"연간 volume text node를 사전확인한8월 volume으로 바꿔 같은 readViewportText와 volumeDisplay(expected.year) 판정이 깨지는지 검사한다. Scope limit: 이전월 값이 연간 지표를 덮는 표시 경계의 대표 결함이다. 제품의 request-generation guard를 제거한 source mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/controls/0/normalActual","valueSha256":"644dea709b7f1fd719c3717541cb8aca9f762c87ffb4d028dc211cd727450a97","matched":true,"value":"12,500kg"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"연간 volume text node를 사전확인한8월 volume으로 바꿔 같은 readViewportText와 volumeDisplay(expected.year) 판정이 깨지는지 검사한다. Scope limit: 이전월 값이 연간 지표를 덮는 표시 경계의 대표 결함이다. 제품의 request-generation guard를 제거한 source mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/controls/0/negativeActual","valueSha256":"0c6405e8c9c1fae712a219273b4b8635435d48f652a8055bca7f6f60cf1b6495","matched":true,"value":"6,250kg"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"연간 volume text node를 사전확인한8월 volume으로 바꿔 같은 readViewportText와 volumeDisplay(expected.year) 판정이 깨지는지 검사한다. Scope limit: 이전월 값이 연간 지표를 덮는 표시 경계의 대표 결함이다. 제품의 request-generation guard를 제거한 source mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/controls/0/restoredActual","valueSha256":"644dea709b7f1fd719c3717541cb8aca9f762c87ffb4d028dc211cd727450a97","matched":true,"value":"12,500kg"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"연간 volume text node를 사전확인한8월 volume으로 바꿔 같은 readViewportText와 volumeDisplay(expected.year) 판정이 깨지는지 검사한다. Scope limit: 이전월 값이 연간 지표를 덮는 표시 경계의 대표 결함이다. 제품의 request-generation guard를 제거한 source mutant는 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/controls/0","valueSha256":"168e2e0bfb0a9d68db7c976ad0a1054ab5f855f87773f6459958c6efbb1bc4e2","matched":true,"value":{"id":"viewport-report-stale-month-cannot-win","description":"늦게 처리된 이전 월 값이 새로 선택한 연간 지표를 덮는 결함","boundary":"late month response cannot replace annual data","status":"passed","expected":"12,500kg","comparator":{"kind":"deepEqual"},"normalActual":"12,500kg","normal":{"matched":true},"negativeActual":"6,250kg","negative":{"matched":false,"applied":{"count":1,"textNodes":1}},"restoredActual":"12,500kg","restored":{"matched":true},"durationMs":24}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/quality/cleanup","valueSha256":"5bdfe2c125df49725ce2971689e3b70fa175be03d3042790b86b557a35d1fa7b","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":2},{"id":"control-viewport-report-stale-month-cannot-win","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/fixture-cleanup-afterAll-114","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"This actual shared suite afterAll at e2e/report-design-detail.spec.mjs:114 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/steps/121","valueSha256":"bf3bbf5bef1c58af914a1e48a68c69cc472849552ee448071c8a736dce5d6b5e","matched":true,"value":{"index":121,"parent":105,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":114,"column":8},"pollSampleLocations":null,"started":6084,"finished":6095,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/1/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/durationMs","valueSha256":"28b51b9809bf29259b60ea6c65ba866c148e19c46aa9353fafe4b5d3b58cf6e5","matched":true,"value":4248},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/1/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/1/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/1/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/title","valueSha256":"9ada3255bc9111d706340d60dee61d1fb2f1f6877c191309f41294628b33cfdf","matched":true,"value":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/startedAt","valueSha256":"11772d59535b51586d5bccfa1798bbf0f4492728674946729ae7e5dec5ef070a","matched":true,"value":"2026-09-09T20:04:06.968Z"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/finishedAt","valueSha256":"05735436bc2dbcd70bbc8c0d8adf7c3c5311369f4f7b938070c98f06f59a862f","matched":true,"value":"2026-09-09T20:04:11.216Z"},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/contexts/0/controls","valueSha256":"1bafd4d9b0d551897fa73f3f453e588c8901081db86327037ad87d669a306973","matched":true,"value":[{"id":"viewport-report-stale-month-cannot-win","phase":"normal","at":"2026-09-09T20:04:11.175Z","pages":[{"page":"viewport-context-1/page-1","documentId":"46BBE71881C3E2498C30783C12B9B753"}]},{"id":"viewport-report-stale-month-cannot-win","phase":"inject-started","at":"2026-09-09T20:04:11.175Z","pages":[{"page":"viewport-context-1/page-1","documentId":"46BBE71881C3E2498C30783C12B9B753"}]},{"id":"viewport-report-stale-month-cannot-win","phase":"inject-finished","at":"2026-09-09T20:04:11.186Z","pages":[{"page":"viewport-context-1/page-1","documentId":"46BBE71881C3E2498C30783C12B9B753"}]},{"id":"viewport-report-stale-month-cannot-win","phase":"negative","at":"2026-09-09T20:04:11.190Z","pages":[{"page":"viewport-context-1/page-1","documentId":"46BBE71881C3E2498C30783C12B9B753"}]},{"id":"viewport-report-stale-month-cannot-win","phase":"restore-started","at":"2026-09-09T20:04:11.190Z","pages":[{"page":"viewport-context-1/page-1","documentId":"46BBE71881C3E2498C30783C12B9B753"}]},{"id":"viewport-report-stale-month-cannot-win","phase":"restore-finished","at":"2026-09-09T20:04:11.191Z","pages":[{"page":"viewport-context-1/page-1","documentId":"46BBE71881C3E2498C30783C12B9B753"}]},{"id":"viewport-report-stale-month-cannot-win","phase":"restored","at":"2026-09-09T20:04:11.194Z","pages":[{"page":"viewport-context-1/page-1","documentId":"46BBE71881C3E2498C30783C12B9B753"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"a28ecf7ccb01fb6fa3764572a749382853792fc38a7cf88c80ff13aa40605302","matched":true,"value":[{"frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"AA287FC17D6E96E40BEBC77A07846CF5","path":"blank","kind":"initial","sequence":1},{"frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"e8dced050c3fee99a72b5d9e5407ae49dec3ffa2c497dc3278703c4bb58510d6","matched":true,"value":[{"id":"1","protocolId":"46BBE71881C3E2498C30783C12B9B753","method":"GET","path":"/","resourceType":"Document","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81081859.447,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81081865.58,"settledSequence":5},{"id":"2","protocolId":"69080.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082047.903,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81082057.61,"settledSequence":14},{"id":"3","protocolId":"69080.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082048.233,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81082061.05800001,"settledSequence":19},{"id":"4","protocolId":"69080.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082048.489,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":16,"settledAtMs":81082062.084,"settledSequence":20},{"id":"5","protocolId":"69080.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082058.09599999,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":17,"settledAtMs":81082066.448,"settledSequence":21},{"id":"6","protocolId":"69080.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082058.545,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":27,"settledAtMs":81082079.6,"settledSequence":28},{"id":"7","protocolId":"69080.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082058.877,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81082069.082,"settledSequence":22},{"id":"8","protocolId":"69080.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082075.421,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81082092.737,"settledSequence":35},{"id":"9","protocolId":"69080.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082075.654,"startedSequence":24,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":33,"settledAtMs":81082098.747,"settledSequence":36},{"id":"10","protocolId":"69080.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082075.843,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":34,"settledAtMs":81082103.68800001,"settledSequence":37},{"id":"11","protocolId":"69080.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082081.652,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81082088.052,"settledSequence":32},{"id":"12","protocolId":"69080.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082111.413,"startedSequence":31,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":38,"settledAtMs":81082119.585,"settledSequence":39},{"id":"13","protocolId":"69080.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082177.756,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81082187.681,"settledSequence":44},{"id":"14","protocolId":"69080.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082179.742,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81082188.985,"settledSequence":45},{"id":"15","protocolId":"69080.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082236.719,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81082252.223,"settledSequence":49},{"id":"16","protocolId":"69080.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082237.542,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81083025.24000001,"settledSequence":57},{"id":"17","protocolId":"69080.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082260.14899999,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81082278.486,"settledSequence":52},{"id":"18","protocolId":"69080.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81082282.31,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81082310.27499999,"settledSequence":55},{"id":"19","protocolId":"69080.86","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81083300.995,"startedSequence":58,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81083310.357,"settledSequence":60},{"id":"20","protocolId":"69080.87","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81084001.81,"startedSequence":61,"responseStatus":null,"terminal":"failed","orphanedBy":null,"settledAtMs":81084093.722,"settledSequence":62,"failure":"net::ERR_ABORTED"},{"id":"21","protocolId":"69080.88","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"1C6F4E6F6D2C108A2A2AF0D04F675BC2","documentId":"46BBE71881C3E2498C30783C12B9B753","startedAtMs":81085180.41299999,"startedSequence":63,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":64,"settledAtMs":81085191.355,"settledSequence":65}]},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/injection-0-0-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Exact real held request and declared phase timeline; an aborted old request proves cancellation protection, not delivery of its payload to JavaScript.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/contexts/0/pages/0/injections/0","valueSha256":"5b32d7c79fbe3034a55c25b3950b3f67fd748a001e56c3911c0a23dda76c2180","matched":true,"value":{"id":"late-august-report","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","page":"viewport-context-1/page-1","requestId":"20","protocolId":"69080.87","documentId":"46BBE71881C3E2498C30783C12B9B753","phases":[{"phase":"registered","at":"2026-09-09T20:04:09.193Z","currentDocumentId":"46BBE71881C3E2498C30783C12B9B753","requestId":null,"protocolId":null,"documentId":null,"terminal":null,"responseStatus":null},{"phase":"held","at":"2026-09-09T20:04:09.255Z","currentDocumentId":"46BBE71881C3E2498C30783C12B9B753","requestId":"20","protocolId":"69080.87","documentId":"46BBE71881C3E2498C30783C12B9B753","terminal":null,"responseStatus":null},{"phase":"released","at":"2026-09-09T20:04:11.008Z","currentDocumentId":"46BBE71881C3E2498C30783C12B9B753","requestId":"20","protocolId":"69080.87","documentId":"46BBE71881C3E2498C30783C12B9B753","terminal":"failed","responseStatus":null},{"phase":"route-handler-finished","at":"2026-09-09T20:04:11.010Z","currentDocumentId":"46BBE71881C3E2498C30783C12B9B753","requestId":"20","protocolId":"69080.87","documentId":"46BBE71881C3E2498C30783C12B9B753","terminal":"failed","responseStatus":null},{"phase":"route-disposed","at":"2026-09-09T20:04:11.196Z","currentDocumentId":"46BBE71881C3E2498C30783C12B9B753","requestId":"20","protocolId":"69080.87","documentId":"46BBE71881C3E2498C30783C12B9B753","terminal":"failed","responseStatus":null}],"startedAtMs":81084001.81}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"cdd15ae937bae55a556949225070308f86d234cfcde1fd46bc5b86e944d8b50c","matched":true,"value":{"sequence":66,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/8/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"e78be1bc074f9971b885f81100560f37d6479ee309fef33c87f352a8b9fef3aa","matched":true,"value":{"status":"completed","closeSequence":66,"startedSequence":67,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":68}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"native-result","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Identifies this exact CASE result only; never sufficient alone for a quality decision.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/first-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"The required reporter accepted the initial attempt, not a successful retry.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/firstAttempt","valueSha256":"b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b","matched":true,"value":true},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/checkpoint-verdicts","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"4 independently declared checkpoints: missing, duplicate, empty, failed or unfinished entries must be rejected.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/checkpoints","valueSha256":"9abf07783f9a62619c602fd86f289bcccedd31a03b3c3e6d6c5b957385419b33","matched":true,"value":[{"id":"inactive report has no requests","passed":true,"assertions":1},{"id":"report request held in loading","passed":true,"assertions":5},{"id":"report error preserves login","passed":true,"assertions":4},{"id":"report retry restores real data","passed":true,"assertions":17}]},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/checkpoint-errors","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"required-assertions","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Actual runtime gate error list, independent of native success.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/errors","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Source scope: 선언된 report 첫 요청503 실패가 로그인 상태를 무너뜨리지 않고 사용자 재조회1회로 실제 서버 data ready상태를 복구하는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/steps/27","valueSha256":"1dc6b0daf7d75edc83b9ad1f2b6046417a51d61d7ab810a90068d50d2ea355f8","matched":true,"value":{"index":27,"parent":1,"category":"test.step","title":"inactive report has no requests","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":135,"column":5},"pollSampleLocations":null,"started":5895,"finished":5898,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-1","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Source scope: 선언된 report 첫 요청503 실패가 로그인 상태를 무너뜨리지 않고 사용자 재조회1회로 실제 서버 data ready상태를 복구하는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/steps/30","valueSha256":"04e8973539ff6d5fc0374f02851391838be84bf20a8d091e86ce6690d4593ee1","matched":true,"value":{"index":30,"parent":null,"category":"test.step","title":"report request held in loading","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":299,"column":7},"pollSampleLocations":null,"started":5903,"finished":5956,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-2","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Source scope: 선언된 report 첫 요청503 실패가 로그인 상태를 무너뜨리지 않고 사용자 재조회1회로 실제 서버 data ready상태를 복구하는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/steps/57","valueSha256":"b8645710379555e186eedded1f9027fbb5f4e5eb35861ec7ac39d7c03f2c1ea1","matched":true,"value":{"index":57,"parent":null,"category":"test.step","title":"report error preserves login","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":307,"column":7},"pollSampleLocations":null,"started":5957,"finished":5966,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-3","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Source scope: 선언된 report 첫 요청503 실패가 로그인 상태를 무너뜨리지 않고 사용자 재조회1회로 실제 서버 data ready상태를 복구하는지 확인한다. The cited runtime checkpoint must execute its original source assertions; assertion count alone is not a semantic substitute.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/steps/62","valueSha256":"9c9a07da21c61cb8b9c454534a9ce8f4f2661952e5ac968e6fee151c5dad3de2","matched":true,"value":{"index":62,"parent":null,"category":"test.step","title":"report retry restores real data","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":314,"column":7},"pollSampleLocations":null,"started":5967,"finished":6018,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-representative-normal","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-normal","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"복구한 실제 report root의 data-lg-state를error로 바꿔 정상 단언과 같은 attribute reader/ready 기대값이 거절하는지 확인한다. Scope limit: 재조회 후 오류 상태가 남는 UI 경계 대표 결함이다. 실제 서버 장애나 auth/DB제약을 제거하는 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/controls/0/normalActual","valueSha256":"40ec7f71ea684c8b976e79e8e425f87779e6de57f4821dcfc8066dbcad2defe0","matched":true,"value":"ready"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-representative-negative","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-negative","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"복구한 실제 report root의 data-lg-state를error로 바꿔 정상 단언과 같은 attribute reader/ready 기대값이 거절하는지 확인한다. Scope limit: 재조회 후 오류 상태가 남는 UI 경계 대표 결함이다. 실제 서버 장애나 auth/DB제약을 제거하는 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/controls/0/negativeActual","valueSha256":"4d01709fcd599118652e3b27bd0ca97c802f832183d01f76a034755f2bc62fa3","matched":true,"value":"error"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-representative-restored","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"representative-restored","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"복구한 실제 report root의 data-lg-state를error로 바꿔 정상 단언과 같은 attribute reader/ready 기대값이 거절하는지 확인한다. Scope limit: 재조회 후 오류 상태가 남는 UI 경계 대표 결함이다. 실제 서버 장애나 auth/DB제약을 제거하는 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/controls/0/restoredActual","valueSha256":"40ec7f71ea684c8b976e79e8e425f87779e6de57f4821dcfc8066dbcad2defe0","matched":true,"value":"ready"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-fault-applied","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"fault-applied","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"복구한 실제 report root의 data-lg-state를error로 바꿔 정상 단언과 같은 attribute reader/ready 기대값이 거절하는지 확인한다. Scope limit: 재조회 후 오류 상태가 남는 UI 경계 대표 결함이다. 실제 서버 장애나 auth/DB제약을 제거하는 mutation은 아니다.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/controls/0/negative/applied/count","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-full","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact control identity, comparator, expected and all phase outcomes; exceptions/timeouts cannot count as a detected defect.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/controls/0","valueSha256":"513cb0dfb5310913bda7133ba1920df6252ab043ec6c734b41d3455e63254a94","matched":true,"value":{"id":"viewport-report-retry-ready-state","description":"실서버 재조회가 끝나도 리포트 상태가 오류로 남는 결함","boundary":"report retry restores real data","status":"passed","expected":"ready","comparator":{"kind":"deepEqual"},"normalActual":"ready","normal":{"matched":true},"negativeActual":"error","negative":{"matched":false,"applied":{"count":1}},"restoredActual":"ready","restored":{"matched":true},"durationMs":26}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/owned-cleanup","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Actual cleanup status for owned contexts, controls and case routes. No claim that historical requests finished successfully merely because the context closed.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/cleanup","valueSha256":"cfa7d9a7271f40f712c84929a678afa24fb3acf1ae1a980f9fa3590be20c490a","matched":true,"value":{"resources":[{"id":"viewport-context-1","status":"passed","settled":true,"durationMs":1},{"id":"control-viewport-report-retry-ready-state","status":"passed","settled":true,"durationMs":2}],"completed":true}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/fixture-cleanup-afterAll-114","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"This actual shared suite afterAll at e2e/report-design-detail.spec.mjs:114 owns the shared fixture resources of every CASE in this same spec. Playwright records it in the final CASE stream; it is not evidence from that CASE's body.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/quality/steps/121","valueSha256":"bf3bbf5bef1c58af914a1e48a68c69cc472849552ee448071c8a736dce5d6b5e","matched":true,"value":{"index":121,"parent":105,"category":"hook","title":"hook","location":{"file":"C:\\Users\\USER\\Documents\\Codex\\2026-09-09\\case-045-4-hosted-ci-x20\\work\\barbelic-1478\\e2e\\report-design-detail.spec.mjs","line":114,"column":8},"pollSampleLocations":null,"started":6084,"finished":6095,"failed":false,"skipped":false}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/case-timeout","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"The native effective CASE timeout covers individual setup and body. Shared beforeAll and teardown are distinct hook budgets.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/2/tests/0/timeout","valueSha256":"d55d01d0341ed0ba2cd99b322e8c5b609254f47d10c7cd12b99b4922effeba44","matched":true,"value":60000},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/case-duration","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"duration-budget","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Measured native CASE duration on this attempt; this does not by itself prove every individual action limit.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/durationMs","valueSha256":"9992c69a82eaba0fc969138c6b27152615b3a57b09ed936bd09b75f1b80d0117","matched":true,"value":2940},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/lane-quality-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Actual required viewport reporter status with independently inventoried CASEs.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/status","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/required-aggregate","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Actual mandatory combined browser/viewport evidence consumer; partial execution is not claimed as full CI.","artifact":"summary","path":"summary.json","artifactSha256":"4fba1a789a2f2f47d6d8ce83237537254574453f036a5011d3bbdd0a526266d0","pointer":"/results/11","valueSha256":"51878913ff484acae6a2756b9a325b2ec6dc78fc952f1d413459da5a0326f282","matched":true,"value":{"name":"e2e-evidence","status":"pass","ms":381,"failures":[]}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-annotations","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"This CASE has no skip/fixme/expected-failure annotations.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/2/tests/0/annotations","valueSha256":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945","matched":true,"value":[]},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-retry","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Actual native retry index is zero.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/2/tests/0/results/0/retry","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-expected-status","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"mandatory-ci","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"The CASE is required to pass; it is not an expected failure.","artifact":"native","path":"viewport/viewport-matrix.json","artifactSha256":"4625719b7d9faa490202ba7ead92d9aa4b2f1636d0f8b631fa7ae98e57cdba00","pointer":"/suites/4/suites/0/specs/2/tests/0/expectedStatus","valueSha256":"559532ad927252eed5d9b6687d55203a96b956d822055f4570f196a93a42bece","matched":true,"value":"passed"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-attachment-count","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exactly one attached failure-preserving diagnostic on this CASE.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnosticAttachmentCount","valueSha256":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","matched":true,"value":1},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-title","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/title","valueSha256":"522cd9b18b634666395158bb7bcbbd49a777264f3cd69019799419524beac0df","matched":true,"value":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-revision","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/revision","valueSha256":"01d27aa6a1e900bfdb33f2b15d30a3c4a92fd6267324027b71bbd9e0fb7bdd24","matched":true,"value":"93d4cad61d09d2c0c546145dd6dc73d8eab82721"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-runId","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/runId","valueSha256":"cebb86bae63678f8cdca3d9cf158298846ebe7a6da6a1c7ce455b475ae505c72","matched":true,"value":"local-1788983964771-26036"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-attempt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/attempt","valueSha256":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","matched":true,"value":0},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-project","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/project","valueSha256":"11a8ab377705c9527ec351fbac11d6aa09c728e37a2c30a21813aca86810208d","matched":true,"value":"chromium"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-locale","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/locale","valueSha256":"35f1c75fc23ec6465b08b1c51fd564f83a2f3948ddad6d766e649b6ef9778134","matched":true,"value":"ko-KR"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-timezone","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/timezone","valueSha256":"a2e20fe1cfe5c0af6359f40b445dd4941ab8ac393e4f8983aa738ebfcc4618a7","matched":true,"value":"Asia/Seoul"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-startedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/startedAt","valueSha256":"d8b0bee4500a0ff1979fc75ad038c5e4c07bf8dfd49d889182b0bb486ffa0ef7","matched":true,"value":"2026-09-09T20:04:11.231Z"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-finishedAt","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/finishedAt","valueSha256":"de98de6e249d94b4bd14da281595d57b81de161856037d6ab9b84913bfb9f255","matched":true,"value":"2026-09-09T20:04:14.172Z"},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-firstFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/firstFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-cleanupFailure","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact CASE diagnostic identity/timing or separately retained body and cleanup error. Successful-run null is not failure-path validation.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/cleanupFailure","valueSha256":"74234e98afe7498fb5daf1f36ac2d78acc339464f950703b8c019892f982b90b","matched":true,"value":null},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-controls","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Same actual page/document identity and timestamps for normal, injection, negative and restoration boundaries.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/contexts/0/controls","valueSha256":"c8d4c8ed223040d768e27415ee23cc0cdee35e90441004dcb6f64fd49e69a446","matched":true,"value":[{"id":"viewport-report-retry-ready-state","phase":"normal","at":"2026-09-09T20:04:13.868Z","pages":[{"page":"viewport-context-1/page-1","documentId":"58086A043D03F29B92E8BF56130CEFA8"}]},{"id":"viewport-report-retry-ready-state","phase":"inject-started","at":"2026-09-09T20:04:13.868Z","pages":[{"page":"viewport-context-1/page-1","documentId":"58086A043D03F29B92E8BF56130CEFA8"}]},{"id":"viewport-report-retry-ready-state","phase":"inject-finished","at":"2026-09-09T20:04:13.882Z","pages":[{"page":"viewport-context-1/page-1","documentId":"58086A043D03F29B92E8BF56130CEFA8"}]},{"id":"viewport-report-retry-ready-state","phase":"negative","at":"2026-09-09T20:04:13.884Z","pages":[{"page":"viewport-context-1/page-1","documentId":"58086A043D03F29B92E8BF56130CEFA8"}]},{"id":"viewport-report-retry-ready-state","phase":"restore-started","at":"2026-09-09T20:04:13.885Z","pages":[{"page":"viewport-context-1/page-1","documentId":"58086A043D03F29B92E8BF56130CEFA8"}]},{"id":"viewport-report-retry-ready-state","phase":"restore-finished","at":"2026-09-09T20:04:13.887Z","pages":[{"page":"viewport-context-1/page-1","documentId":"58086A043D03F29B92E8BF56130CEFA8"}]},{"id":"viewport-report-retry-ready-state","phase":"restored","at":"2026-09-09T20:04:13.890Z","pages":[{"page":"viewport-context-1/page-1","documentId":"58086A043D03F29B92E8BF56130CEFA8"}]}]},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-documents","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Real CDP loader/document generations; reload is not inferred from a test counter.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/contexts/0/pages/0/requestLifecycle/documents","valueSha256":"49252cbe491778c89f2f0382ac8b4f21b76b49e6908d4e7b5a05590aa07259ec","matched":true,"value":[{"frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"DF527EFAEB950A12FF70D87402D867D9","path":"blank","kind":"initial","sequence":1},{"frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","path":"/","kind":"committed","sequence":4}]},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-requests","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"diagnostic-completeness","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Actual request IDs, document IDs, method/path/status and terminal/start/end sequences; headers and bodies are not recorded.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/contexts/0/pages/0/requestLifecycle/requests","valueSha256":"c713673e179c564da9d1e0c76f81f8883a25fea890acbbcd1e8869f0ac8e66eb","matched":true,"value":[{"id":"1","protocolId":"58086A043D03F29B92E8BF56130CEFA8","method":"GET","path":"/","resourceType":"Document","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086142.32100001,"startedSequence":2,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":3,"settledAtMs":81086147.801,"settledSequence":5},{"id":"2","protocolId":"76824.43","method":"GET","path":"/rest/v1/profiles","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086328.081,"startedSequence":7,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":14,"settledAtMs":81086337.97500001,"settledSequence":17},{"id":"3","protocolId":"76824.44","method":"POST","path":"/rest/v1/rpc/get_profile_workspace","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086328.532,"startedSequence":8,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":13,"settledAtMs":81086337.838,"settledSequence":16},{"id":"4","protocolId":"76824.45","method":"POST","path":"/rest/v1/rpc/get_onboarding_state","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086328.792,"startedSequence":9,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":15,"settledAtMs":81086340.684,"settledSequence":20},{"id":"5","protocolId":"76824.46","method":"POST","path":"/rest/v1/rpc/get_my_moderation_state_v1","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086339.98099999,"startedSequence":10,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":18,"settledAtMs":81086349.236,"settledSequence":21},{"id":"6","protocolId":"76824.47","method":"POST","path":"/rest/v1/rpc/list_user_notifications_v1","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086340.397,"startedSequence":11,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":27,"settledAtMs":81086367.11,"settledSequence":28},{"id":"7","protocolId":"76824.48","method":"POST","path":"/rest/v1/rpc/list_my_groups_design_v1","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086340.889,"startedSequence":12,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":19,"settledAtMs":81086351.691,"settledSequence":22},{"id":"8","protocolId":"76824.49","method":"POST","path":"/rest/v1/rpc/get_pr_overview","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086364.361,"startedSequence":23,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":31,"settledAtMs":81086386.64,"settledSequence":35},{"id":"9","protocolId":"76824.50","method":"POST","path":"/rest/v1/rpc/get_profile_feed","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086364.762,"startedSequence":24,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":30,"settledAtMs":81086385.27100001,"settledSequence":34},{"id":"10","protocolId":"76824.51","method":"POST","path":"/rest/v1/rpc/get_home_dashboard","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086365.094,"startedSequence":25,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":36,"settledAtMs":81086397.684,"settledSequence":38},{"id":"11","protocolId":"76824.52","method":"POST","path":"/rest/v1/rpc/get_user_exercise_favorites","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086370.561,"startedSequence":26,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":29,"settledAtMs":81086377.67899999,"settledSequence":33},{"id":"12","protocolId":"76824.53","method":"POST","path":"/rest/v1/rpc/is_lift_guild_admin","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086390.97999999,"startedSequence":32,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":37,"settledAtMs":81086398.689,"settledSequence":39},{"id":"13","protocolId":"76824.54","method":"POST","path":"/rest/v1/rpc/get_exercise_search_signals_v1","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086480.861,"startedSequence":40,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":42,"settledAtMs":81086490.184,"settledSequence":44},{"id":"14","protocolId":"76824.55","method":"POST","path":"/rest/v1/rpc/get_workout_draft_checkpoint_v2","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086482.23799999,"startedSequence":41,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":43,"settledAtMs":81086490.393,"settledSequence":45},{"id":"15","protocolId":"76824.82","method":"POST","path":"/rest/v1/rpc/get_calendar_month_summary","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086538.319,"startedSequence":46,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":48,"settledAtMs":81086561.755,"settledSequence":49},{"id":"16","protocolId":"76824.83","method":"POST","path":"/rest/v1/rpc/get_exercise_catalog","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086539.44199999,"startedSequence":47,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":56,"settledAtMs":81087348.06,"settledSequence":57},{"id":"17","protocolId":"76824.84","method":"POST","path":"/rest/v1/rpc/get_calendar_day_summary","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086572.339,"startedSequence":50,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":51,"settledAtMs":81086592.97899999,"settledSequence":52},{"id":"18","protocolId":"76824.85","method":"POST","path":"/rest/v1/rpc/get_volume_overview","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81086597.13599999,"startedSequence":53,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":54,"settledAtMs":81086632.28799999,"settledSequence":55},{"id":"19","protocolId":"76824.86","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81087623.207,"startedSequence":58,"responseStatus":503,"terminal":"finished","orphanedBy":null,"responseSequence":59,"settledAtMs":81088439.17699999,"settledSequence":60},{"id":"20","protocolId":"76824.87","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","resourceType":"Fetch","frameId":"566DF87E7EC5B6FFF146E792FB695C87","documentId":"58086A043D03F29B92E8BF56130CEFA8","startedAtMs":81088496.106,"startedSequence":61,"responseStatus":200,"terminal":"finished","orphanedBy":null,"responseSequence":62,"settledAtMs":81088510.54200001,"settledSequence":63}]},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/injection-0-0-0","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"condition-observed","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Exact real held request and declared phase timeline; an aborted old request proves cancellation protection, not delivery of its payload to JavaScript.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/contexts/0/pages/0/injections/0","valueSha256":"e878caefff0db503f2bf2ba268051e4899a78f0d34c2d8f75874532ed9f28143","matched":true,"value":{"id":"report-first-response-failure","method":"POST","path":"/rest/v1/rpc/get_report_design_v1","page":"viewport-context-1/page-1","requestId":"19","protocolId":"76824.86","documentId":"58086A043D03F29B92E8BF56130CEFA8","phases":[{"phase":"registered","at":"2026-09-09T20:04:12.237Z","currentDocumentId":"58086A043D03F29B92E8BF56130CEFA8","requestId":null,"protocolId":null,"documentId":null,"terminal":null,"responseStatus":null},{"phase":"held","at":"2026-09-09T20:04:13.657Z","currentDocumentId":"58086A043D03F29B92E8BF56130CEFA8","requestId":"19","protocolId":"76824.86","documentId":"58086A043D03F29B92E8BF56130CEFA8","terminal":null,"responseStatus":null},{"phase":"released","at":"2026-09-09T20:04:13.659Z","currentDocumentId":"58086A043D03F29B92E8BF56130CEFA8","requestId":"19","protocolId":"76824.86","documentId":"58086A043D03F29B92E8BF56130CEFA8","terminal":null,"responseStatus":null},{"phase":"declared-error-observed","at":"2026-09-09T20:04:13.684Z","currentDocumentId":"58086A043D03F29B92E8BF56130CEFA8","requestId":"19","protocolId":"76824.86","documentId":"58086A043D03F29B92E8BF56130CEFA8","terminal":"finished","responseStatus":503},{"phase":"retry-ready-observed","at":"2026-09-09T20:04:13.863Z","currentDocumentId":"58086A043D03F29B92E8BF56130CEFA8","requestId":"19","protocolId":"76824.86","documentId":"58086A043D03F29B92E8BF56130CEFA8","terminal":"finished","responseStatus":503},{"phase":"route-disposed","at":"2026-09-09T20:04:14.150Z","currentDocumentId":"58086A043D03F29B92E8BF56130CEFA8","requestId":"19","protocolId":"76824.86","documentId":"58086A043D03F29B92E8BF56130CEFA8","terminal":"finished","responseStatus":503}],"startedAtMs":81087623.207}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-closed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Actual page close is distinct from request terminal. Remaining historical pending request IDs are retained honestly.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/pageClosed","valueSha256":"a41da4c238d28cb328bd59069e3e3162957f0a855942f354f4efa968afb5f8e9","matched":true,"value":{"sequence":64,"pendingRequestIds":[]}},{"id":"viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-disposed","kind":"app-run","repository":"app","commit":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","role":"cleanup-success","caseId":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","explanation":"Owned listeners removed only after the actual close; zero remaining callbacks is read back.","artifact":"quality","path":"viewport/viewport-1-of-1.e2e-evidence.json","artifactSha256":"fe8c4807c00c3107521605dcd21f9d69c9ec71ae5bd8cdea76488e40db8f79a7","pointer":"/results/9/diagnostic/contextsAfterCleanup/0/pages/0/requestLifecycle/observerDisposal","valueSha256":"522c385a35120f112a927fbb969550ddc2f34d9dd1c344f062c385ef0caf1f93","matched":true,"value":{"status":"completed","closeSequence":64,"startedSequence":65,"remainingOwnedListeners":0,"protocolDetach":"already-closed","completedSequence":66}}],"cases":[{"id":"CASE-001","title":"Mobile custom exercise reps render crash","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L13","checks":{"1":{"status":"P","reason":"정적: 사용자는 빈 운동 세션에서 횟수 전용 커스텀 종목 \"high clean and jerk\"를 만들고 3회를 입력한 뒤 운동을 저장하고, 새로고침 후 동일한 기록을 오류 없이 다시 열 수 있다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L34"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L105","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 요구 입력 reps=3, recording_fields=[reps], load=null과 종목/세션 owner를 UI·draft·직접 DB·상세 RPC에서 비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L167","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L182"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Mobile custom exercise reps render crash: 실제 완료한 필수 상황·목표 checkpoint는 custom-reps-state, exact-persistence, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 횟수 전용 사용자 종목의 편집 화면이 중량 입력 없이 3회 입력을 정상 표시해야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L105","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L129"],"evidenceRefs":["app-source-current#CASE-001-6-0","app-source-current#CASE-001-6-1","app-source-current#CASE-001-6-2","app-source-current#CASE-001-6-3","run-browser-1#case-01-goal-checkpoints","run-browser-1#case-01-checkpoints","run-browser-1#case-01-quality-errors","run-browser-1#case-01-diagnostic-errors","run-browser-1#case-01-missing-signals","run-browser-1#case-01-unexpected-browser-errors","run-browser-1#case-01-complete-goals","run-browser-1#case-01-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 중량 필드 없음, camelCase draft, fatal shell 없음, 단일 종목/세트, 저장·reload 상세의 3회를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L83","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L91","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L151","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L198"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"custom-reps-state, exact-persistence, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/case.json#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-001-8-0","app-source-current#CASE-001-8-1","app-source-current#CASE-001-8-2","app-source-current#CASE-001-8-3","run-browser-1#case-01-checkpoints","run-browser-1#case-01-quality-errors","run-browser-1#case-01-diagnostic-errors","run-browser-1#case-01-missing-signals","run-browser-1#case-01-unexpected-browser-errors","run-browser-1#case-01-complete-goals","run-browser-1#case-01-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 횟수 전용 사용자 종목의 편집 화면이 중량 입력 없이 3회 입력을 정상 표시해야 한다. 실제 DOM에 대응하는 대표 control 'case-001-reps-only-render-loss'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-001-9-0","app-source-current#CASE-001-9-1","app-source-current#CASE-001-9-2","app-source-current#CASE-001-9-3","run-browser-1#case-01-control-0-normal-value","run-browser-1#case-01-control-0-normal","run-browser-1#case-01-control-0-negative-value","run-browser-1#case-01-control-0-negative","run-browser-1#case-01-control-0-restored-value","run-browser-1#case-01-control-0-restored","run-browser-1#case-01-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-001-10-0","app-source-current#CASE-001-10-1","app-source-current#CASE-001-10-2","app-source-current#CASE-001-10-3","run-browser-1#case-01-rpc-observers","run-browser-1#case-01-cleanup-completed","run-browser-1#case-01-cleanup-resources","run-browser-1#case-01-listener-owners","run-browser-1#case-01-page-0-pageClosed","run-browser-1#case-01-page-0-routeCleanup","run-browser-1#case-01-page-0-observerDisposal","run-browser-1#case-01-page-0-currentPending","run-browser-1#case-01-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8654ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-001-11-0","app-source-current#CASE-001-11-1","run-browser-1#case-01-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L206"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-001-mobile-custom-exercise-reps-render-crash/regression.spec.mjs#L11"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-001-15-0","app-source-current#CASE-001-15-1","app-source-current#CASE-001-15-2","app-source-current#CASE-001-15-3","run-browser-1#case-01-diagnostic-count","run-browser-1#case-01-diagnostic-revision","run-browser-1#case-01-diagnostic-runId","run-browser-1#case-01-diagnostic-attempt","run-browser-1#case-01-diagnostic-project","run-browser-1#case-01-diagnostic-locale","run-browser-1#case-01-diagnostic-timezone","run-browser-1#case-01-diagnostic-startedAt","run-browser-1#case-01-diagnostic-finishedAt","run-browser-1#case-01-diagnostic-cleanupStage","run-browser-1#case-01-diagnostic-status","run-browser-1#case-01-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-002","title":"Desktop session rename save deadlock","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L16","checks":{"1":{"status":"P","reason":"정적: 사용자는 기존 완료 세션의 이름을 변경해 저장한 뒤 즉시 운동일지를 계속 사용할 수 있고, 새로고침 후에도 운동·중량·횟수 데이터가 훼손되지 않은 동일 세션을 다시 열 수 있다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L60"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 입력 제목 및 70kg×5, revision 1→2를 상수로 판정하고 수정 전 직접 읽은 canonical child 필드를 수정 후와 전부 비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L172"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Desktop session rename save deadlock: 실제 완료한 필수 상황·목표 checkpoint는 save-and-interaction, aggregate-and-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: rename 저장이 revision2에 도달하면 편집기와 scrim이 사라져 일지 상호작용이 가능해야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L82"],"evidenceRefs":["app-source-current#CASE-002-6-0","app-source-current#CASE-002-6-1","app-source-current#CASE-002-6-2","app-source-current#CASE-002-6-3","run-browser-1#case-02-goal-checkpoints","run-browser-1#case-02-checkpoints","run-browser-1#case-02-quality-errors","run-browser-1#case-02-diagnostic-errors","run-browser-1#case-02-missing-signals","run-browser-1#case-02-unexpected-browser-errors","run-browser-1#case-02-complete-goals","run-browser-1#case-02-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 편집기와 scrim 제거, 일지 재조작, 같은 session id, 제목/개정/갱신시각 외 필드와 child 불변, reload를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L166"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"save-and-interaction, aggregate-and-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/case.json#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-002-8-0","app-source-current#CASE-002-8-1","app-source-current#CASE-002-8-2","app-source-current#CASE-002-8-3","run-browser-1#case-02-checkpoints","run-browser-1#case-02-quality-errors","run-browser-1#case-02-diagnostic-errors","run-browser-1#case-02-missing-signals","run-browser-1#case-02-unexpected-browser-errors","run-browser-1#case-02-complete-goals","run-browser-1#case-02-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: rename 저장이 revision2에 도달하면 편집기와 scrim이 사라져 일지 상호작용이 가능해야 한다. 실제 DOM에 대응하는 대표 control 'case-002-rename-editor-remains-blocking'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-002-9-0","app-source-current#CASE-002-9-1","app-source-current#CASE-002-9-2","app-source-current#CASE-002-9-3","run-browser-1#case-02-control-0-normal-value","run-browser-1#case-02-control-0-normal","run-browser-1#case-02-control-0-negative-value","run-browser-1#case-02-control-0-negative","run-browser-1#case-02-control-0-restored-value","run-browser-1#case-02-control-0-restored","run-browser-1#case-02-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-002-10-0","app-source-current#CASE-002-10-1","app-source-current#CASE-002-10-2","app-source-current#CASE-002-10-3","run-browser-1#case-02-rpc-observers","run-browser-1#case-02-cleanup-completed","run-browser-1#case-02-cleanup-resources","run-browser-1#case-02-listener-owners","run-browser-1#case-02-page-0-pageClosed","run-browser-1#case-02-page-0-routeCleanup","run-browser-1#case-02-page-0-observerDisposal","run-browser-1#case-02-page-0-currentPending","run-browser-1#case-02-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 5402ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-002-11-0","app-source-current#CASE-002-11-1","run-browser-1#case-02-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L179"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-002-desktop-session-rename-save-deadlock/regression.spec.mjs#L14"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-002-15-0","app-source-current#CASE-002-15-1","app-source-current#CASE-002-15-2","app-source-current#CASE-002-15-3","run-browser-1#case-02-diagnostic-count","run-browser-1#case-02-diagnostic-revision","run-browser-1#case-02-diagnostic-runId","run-browser-1#case-02-diagnostic-attempt","run-browser-1#case-02-diagnostic-project","run-browser-1#case-02-diagnostic-locale","run-browser-1#case-02-diagnostic-timezone","run-browser-1#case-02-diagnostic-startedAt","run-browser-1#case-02-diagnostic-finishedAt","run-browser-1#case-02-diagnostic-cleanupStage","run-browser-1#case-02-diagnostic-status","run-browser-1#case-02-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-004","title":"Mobile post-save owner feed and day summary","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L14","checks":{"1":{"status":"P","reason":"정적: 사용자는 모바일에서 70kg × 5회 세트를 완료해 세션을 저장한 직후와 새로고침 후 모두 피드에서 본인 세션 포스트를 확인하고, 캘린더의 오늘 날짜 상세에서도 저장한 세션 제목과 운동·세트 행 및 기존 당일 기록 기준 350kg·1세트·5랩 증가분을 확인할 수 있다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/case.json#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L87"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L87","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 기존 완료 원본의 독립 집계에 새 70×5의 350kg·1세트·5랩 증가분을 더해 UI/day RPC를 판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L155","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L196"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Mobile post-save owner feed and day summary: 실제 완료한 필수 상황·목표 checkpoint는 exact-save-and-home-return, immediate-owner-feed-hydration, immediate-home-day-hydration, feed-and-calendar-reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 저장 직후 오늘 요약이 원본 baseline 대비 350kg·1세트·5랩 증가해야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L52"],"evidenceRefs":["app-source-current#CASE-004-6-0","app-source-current#CASE-004-6-1","app-source-current#CASE-004-6-2","app-source-current#CASE-004-6-3","run-browser-1#case-03-goal-checkpoints","run-browser-1#case-03-checkpoints","run-browser-1#case-03-quality-errors","run-browser-1#case-03-diagnostic-errors","run-browser-1#case-03-missing-signals","run-browser-1#case-03-unexpected-browser-errors","run-browser-1#case-03-complete-goals","run-browser-1#case-03-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 즉시 본인 feed와 day 상세·제목·종목·세트 및 reload 후 합계를 검사한다. 기존 당일 기록을 0으로 가정하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L196","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L222"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"exact-save-and-home-return, immediate-owner-feed-hydration, immediate-home-day-hydration, feed-and-calendar-reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/case.json#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L240","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-004-8-0","app-source-current#CASE-004-8-1","app-source-current#CASE-004-8-2","app-source-current#CASE-004-8-3","run-browser-1#case-03-checkpoints","run-browser-1#case-03-quality-errors","run-browser-1#case-03-diagnostic-errors","run-browser-1#case-03-missing-signals","run-browser-1#case-03-unexpected-browser-errors","run-browser-1#case-03-complete-goals","run-browser-1#case-03-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 저장 직후 오늘 요약이 원본 baseline 대비 350kg·1세트·5랩 증가해야 한다. 실제 DOM에 대응하는 대표 control 'case-004-post-save-summary-stays-at-baseline'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/case.json#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-004-9-0","app-source-current#CASE-004-9-1","app-source-current#CASE-004-9-2","app-source-current#CASE-004-9-3","run-browser-1#case-03-control-0-normal-value","run-browser-1#case-03-control-0-normal","run-browser-1#case-03-control-0-negative-value","run-browser-1#case-03-control-0-negative","run-browser-1#case-03-control-0-restored-value","run-browser-1#case-03-control-0-restored","run-browser-1#case-03-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L240","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-004-10-0","app-source-current#CASE-004-10-1","app-source-current#CASE-004-10-2","app-source-current#CASE-004-10-3","run-browser-1#case-03-rpc-observers","run-browser-1#case-03-cleanup-completed","run-browser-1#case-03-cleanup-resources","run-browser-1#case-03-listener-owners","run-browser-1#case-03-page-0-pageClosed","run-browser-1#case-03-page-0-routeCleanup","run-browser-1#case-03-page-0-observerDisposal","run-browser-1#case-03-page-0-currentPending","run-browser-1#case-03-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8375ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-004-11-0","app-source-current#CASE-004-11-1","run-browser-1#case-03-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L240"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-004-mobile-post-save-home-day-summary-stale/regression.spec.mjs#L12"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-004-15-0","app-source-current#CASE-004-15-1","app-source-current#CASE-004-15-2","app-source-current#CASE-004-15-3","run-browser-1#case-03-diagnostic-count","run-browser-1#case-03-diagnostic-revision","run-browser-1#case-03-diagnostic-runId","run-browser-1#case-03-diagnostic-attempt","run-browser-1#case-03-diagnostic-project","run-browser-1#case-03-diagnostic-locale","run-browser-1#case-03-diagnostic-timezone","run-browser-1#case-03-diagnostic-startedAt","run-browser-1#case-03-diagnostic-finishedAt","run-browser-1#case-03-diagnostic-cleanupStage","run-browser-1#case-03-diagnostic-status","run-browser-1#case-03-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-005","title":"Set outcomes and PR detail round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L18","checks":{"1":{"status":"P","reason":"정적: 사용자는 성공 세트 5회, 0회 실패 세트, 시작하지 않은 세트를 포함한 운동을 저장한 뒤 PR 종목 상세에서 성공·실패 두 세트만 정확히 확인하고, 새로고침 후에도 종목 요약·PR 기록·최근 탑세트·훈련 목록 데이터가 오류 없이 유지되는 것을 확인할 수 있다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L77"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L126","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L174","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 완료 70kg×5와 실패 75kg×0만 남고 미시작 세트는 없다는 명시적 두 행 배열을 직접 DB/history/UI에서 판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L182"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Set outcomes and PR detail round trip: 실제 완료한 필수 상황·목표 checkpoint는 persisted-outcomes-and-rpcs, rendered-pr-detail, reload-pr-detail, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 성공70×5와 실패75×0 두 시작 세트가 남고 미시작 세트는 빠져야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L149","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L126"],"evidenceRefs":["app-source-current#CASE-005-6-0","app-source-current#CASE-005-6-1","app-source-current#CASE-005-6-2","app-source-current#CASE-005-6-3","run-browser-1#case-04-goal-checkpoints","run-browser-1#case-04-checkpoints","run-browser-1#case-04-quality-errors","run-browser-1#case-04-diagnostic-errors","run-browser-1#case-04-missing-signals","run-browser-1#case-04-unexpected-browser-errors","run-browser-1#case-04-complete-goals","run-browser-1#case-04-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 성공·0회 실패·미시작의 세 경계, 정확 set id 형식, split RPC 계층, reload history를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L137","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L196"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"persisted-outcomes-and-rpcs, rendered-pr-detail, reload-pr-detail, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/case.json#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L204","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-005-8-0","app-source-current#CASE-005-8-1","app-source-current#CASE-005-8-2","app-source-current#CASE-005-8-3","run-browser-1#case-04-checkpoints","run-browser-1#case-04-quality-errors","run-browser-1#case-04-diagnostic-errors","run-browser-1#case-04-missing-signals","run-browser-1#case-04-unexpected-browser-errors","run-browser-1#case-04-complete-goals","run-browser-1#case-04-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 성공70×5와 실패75×0 두 시작 세트가 남고 미시작 세트는 빠져야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-005-zero-rep-failure-disappears-from-history'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L149","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-005-9-0","app-source-current#CASE-005-9-1","app-source-current#CASE-005-9-2","app-source-current#CASE-005-9-3","run-browser-1#case-04-control-0-normal-value","run-browser-1#case-04-control-0-normal","run-browser-1#case-04-control-0-negative-value","run-browser-1#case-04-control-0-negative","run-browser-1#case-04-control-0-restored-value","run-browser-1#case-04-control-0-restored","run-browser-1#case-04-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L149","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L204","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-005-10-0","app-source-current#CASE-005-10-1","app-source-current#CASE-005-10-2","app-source-current#CASE-005-10-3","run-browser-1#case-04-rpc-observers","run-browser-1#case-04-cleanup-completed","run-browser-1#case-04-cleanup-resources","run-browser-1#case-04-listener-owners","run-browser-1#case-04-page-0-pageClosed","run-browser-1#case-04-page-0-routeCleanup","run-browser-1#case-04-page-0-observerDisposal","run-browser-1#case-04-page-0-currentPending","run-browser-1#case-04-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 4813ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-005-11-0","app-source-current#CASE-005-11-1","run-browser-1#case-04-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L204"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-005-set-outcomes-pr-detail-round-trip/regression.spec.mjs#L16"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-005-15-0","app-source-current#CASE-005-15-1","app-source-current#CASE-005-15-2","app-source-current#CASE-005-15-3","run-browser-1#case-04-diagnostic-count","run-browser-1#case-04-diagnostic-revision","run-browser-1#case-04-diagnostic-runId","run-browser-1#case-04-diagnostic-attempt","run-browser-1#case-04-diagnostic-project","run-browser-1#case-04-diagnostic-locale","run-browser-1#case-04-diagnostic-timezone","run-browser-1#case-04-diagnostic-startedAt","run-browser-1#case-04-diagnostic-finishedAt","run-browser-1#case-04-diagnostic-cleanupStage","run-browser-1#case-04-diagnostic-status","run-browser-1#case-04-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-006","title":"Desktop PR growth pagination","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L21","checks":{"1":{"status":"P","reason":"정적: 사용자는 PR 기록이 첫 페이지 한도를 넘어도 종목 상세에서 전체 실측 기록 로딩이 끝나고 1RM 성장 그래프가 표시되며, 새로고침 후에도 같은 그래프와 최신 1RM을 오류 없이 확인할 수 있다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L59"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L59","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: rep target 18개를 두 시점에 만들어 36개 고유 기록, 첫 32개/뒤4개, target당2개 및 명시적 최신 1RM을 기대한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L160"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Desktop PR growth pagination: 실제 완료한 필수 상황·목표 checkpoint는 persisted-two-page-records, rendered-growth-chart, reload-growth-chart, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 첫32개와 뒤4개를 합치면 중복 없는36개 실제 기록을 모두 읽어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L103"],"evidenceRefs":["app-source-current#CASE-006-6-0","app-source-current#CASE-006-6-1","app-source-current#CASE-006-6-2","app-source-current#CASE-006-6-3","run-browser-1#case-05-goal-checkpoints","run-browser-1#case-05-checkpoints","run-browser-1#case-05-quality-errors","run-browser-1#case-05-diagnostic-errors","run-browser-1#case-05-missing-signals","run-browser-1#case-05-unexpected-browser-errors","run-browser-1#case-05-complete-goals","run-browser-1#case-05-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 페이지 상한 32 초과, cursor 종료, id 중복, 개별 target 횟수, 로딩 완료 후 graph/reload를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L106","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L152","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L173"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"persisted-two-page-records, rendered-growth-chart, reload-growth-chart, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/case.json#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-006-8-0","app-source-current#CASE-006-8-1","app-source-current#CASE-006-8-2","app-source-current#CASE-006-8-3","run-browser-1#case-05-checkpoints","run-browser-1#case-05-quality-errors","run-browser-1#case-05-diagnostic-errors","run-browser-1#case-05-missing-signals","run-browser-1#case-05-unexpected-browser-errors","run-browser-1#case-05-complete-goals","run-browser-1#case-05-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 첫32개와 뒤4개를 합치면 중복 없는36개 실제 기록을 모두 읽어야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-006-pagination-repeats-a-first-page-record'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-006-9-0","app-source-current#CASE-006-9-1","app-source-current#CASE-006-9-2","app-source-current#CASE-006-9-3","run-browser-1#case-05-control-0-normal-value","run-browser-1#case-05-control-0-normal","run-browser-1#case-05-control-0-negative-value","run-browser-1#case-05-control-0-negative","run-browser-1#case-05-control-0-restored-value","run-browser-1#case-05-control-0-restored","run-browser-1#case-05-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-006-10-0","app-source-current#CASE-006-10-1","app-source-current#CASE-006-10-2","app-source-current#CASE-006-10-3","run-browser-1#case-05-rpc-observers","run-browser-1#case-05-cleanup-completed","run-browser-1#case-05-cleanup-resources","run-browser-1#case-05-listener-owners","run-browser-1#case-05-page-0-pageClosed","run-browser-1#case-05-page-0-routeCleanup","run-browser-1#case-05-page-0-observerDisposal","run-browser-1#case-05-page-0-currentPending","run-browser-1#case-05-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 5525ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-006-11-0","app-source-current#CASE-006-11-1","run-browser-1#case-05-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L181"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-006-desktop-pr-growth-pagination/regression.spec.mjs#L19"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-006-15-0","app-source-current#CASE-006-15-1","app-source-current#CASE-006-15-2","app-source-current#CASE-006-15-3","run-browser-1#case-05-diagnostic-count","run-browser-1#case-05-diagnostic-revision","run-browser-1#case-05-diagnostic-runId","run-browser-1#case-05-diagnostic-attempt","run-browser-1#case-05-diagnostic-project","run-browser-1#case-05-diagnostic-locale","run-browser-1#case-05-diagnostic-timezone","run-browser-1#case-05-diagnostic-startedAt","run-browser-1#case-05-diagnostic-finishedAt","run-browser-1#case-05-diagnostic-cleanupStage","run-browser-1#case-05-diagnostic-status","run-browser-1#case-05-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-007","title":"Auth user deletion cascades completed workout data without cross-account damage","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L16","checks":{"1":{"status":"P","reason":"정적: 관리자가 완료 운동 데이터가 있는 사용자를 삭제하면 Auth 사용자와 그 사용자의 프로필·운동 그래프·파생 행만 하나의 요청으로 삭제되고, 다른 사용자의 로그인·운동 데이터·렌더링 경험은 그대로 유지되어야 한다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L58"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L184","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 삭제 전 대상82×3·대조64×5 및 각각의 owner를 확인하고 삭제 뒤 대상 graph 부재와 대조 aggregate의 완전 동일성을 비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L162"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Auth user deletion cascades completed workout data without cross-account damage: 실제 완료한 필수 상황·목표 checkpoint는 isolated-predelete-state, auth-delete-cascade, control-render-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: Auth 사용자 삭제 후 해당 owner의 원본 session과 자식 그래프가 남지 않고 control 사용자 데이터는 유지되어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L138"],"evidenceRefs":["app-source-current#CASE-007-6-0","app-source-current#CASE-007-6-1","app-source-current#CASE-007-6-2","app-source-current#CASE-007-6-3","run-browser-1#case-06-goal-checkpoints","run-browser-1#case-06-checkpoints","run-browser-1#case-06-quality-errors","run-browser-1#case-06-diagnostic-errors","run-browser-1#case-06-missing-signals","run-browser-1#case-06-unexpected-browser-errors","run-browser-1#case-06-complete-goals","run-browser-1#case-06-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: Auth 대상 부재·대조계정 존재, 원본/파생/직접 child id 잔존0, 대조 profile·로그인·UI·reload 유지.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L168","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L200","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L268"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"isolated-predelete-state, auth-delete-cascade, control-render-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/case.json#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-007-8-0","app-source-current#CASE-007-8-1","app-source-current#CASE-007-8-2","app-source-current#CASE-007-8-3","run-browser-1#case-06-checkpoints","run-browser-1#case-06-quality-errors","run-browser-1#case-06-diagnostic-errors","run-browser-1#case-06-missing-signals","run-browser-1#case-06-unexpected-browser-errors","run-browser-1#case-06-complete-goals","run-browser-1#case-06-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: Auth 사용자 삭제 후 해당 owner의 원본 session과 자식 그래프가 남지 않고 control 사용자 데이터는 유지되어야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-007-deleted-owner-leaves-a-session-row'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-007-9-0","app-source-current#CASE-007-9-1","app-source-current#CASE-007-9-2","app-source-current#CASE-007-9-3","run-browser-1#case-06-control-0-normal-value","run-browser-1#case-06-control-0-normal","run-browser-1#case-06-control-0-negative-value","run-browser-1#case-06-control-0-negative","run-browser-1#case-06-control-0-restored-value","run-browser-1#case-06-control-0-restored","run-browser-1#case-06-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-007-10-0","app-source-current#CASE-007-10-1","app-source-current#CASE-007-10-2","app-source-current#CASE-007-10-3","run-browser-1#case-06-rpc-observers","run-browser-1#case-06-cleanup-completed","run-browser-1#case-06-cleanup-resources","run-browser-1#case-06-listener-owners","run-browser-1#case-06-page-0-pageClosed","run-browser-1#case-06-page-0-routeCleanup","run-browser-1#case-06-page-0-observerDisposal","run-browser-1#case-06-page-0-currentPending","run-browser-1#case-06-page-0-previousDocumentPending","run-browser-1#case-06-page-1-pageClosed","run-browser-1#case-06-page-1-routeCleanup","run-browser-1#case-06-page-1-observerDisposal","run-browser-1#case-06-page-1-currentPending","run-browser-1#case-06-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 5734ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-007-11-0","app-source-current#CASE-007-11-1","run-browser-1#case-06-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L206"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-007-auth-user-delete-cascade-round-trip/regression.spec.mjs#L14"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-007-15-0","app-source-current#CASE-007-15-1","app-source-current#CASE-007-15-2","app-source-current#CASE-007-15-3","run-browser-1#case-06-diagnostic-count","run-browser-1#case-06-diagnostic-revision","run-browser-1#case-06-diagnostic-runId","run-browser-1#case-06-diagnostic-attempt","run-browser-1#case-06-diagnostic-project","run-browser-1#case-06-diagnostic-locale","run-browser-1#case-06-diagnostic-timezone","run-browser-1#case-06-diagnostic-startedAt","run-browser-1#case-06-diagnostic-finishedAt","run-browser-1#case-06-diagnostic-cleanupStage","run-browser-1#case-06-diagnostic-status","run-browser-1#case-06-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-008","title":"Mobile report workout days and grass round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L19","checks":{"1":{"status":"P","reason":"정적: 사용자는 여러 날짜에 저장된 운동이 있는 연간 리포트에서 실제 운동 날짜와 정확히 같은 날짜의 잔디만 색칠되고, 표시된 운동일 수가 PostgreSQL·인증 RPC·색칠된 잔디 날짜 집합의 동일한 개수와 일치하며, 새로고침 후에도 같은 결과를 오류 없이 확인할 수 있다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/case.json#L25","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L89"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 완료 session·part·set 원본으로 연간 날짜 집합/볼륨을 독립 집계한다. stats·report RPC·색칠된 날짜·카운트를 그 집합과 비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L283"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Mobile report workout days and grass round trip: 실제 완료한 필수 상황·목표 checkpoint는 persisted-annual-date-set, rendered-count-and-grass, reload-count-and-grass, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 0kg 운동일을 포함해 원본 완료 session과 정확히 같은 날짜들만 연간 잔디에서 활성화되어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L162"],"evidenceRefs":["app-source-current#CASE-008-6-0","app-source-current#CASE-008-6-1","app-source-current#CASE-008-6-2","app-source-current#CASE-008-6-3","run-browser-1#case-07-goal-checkpoints","run-browser-1#case-07-checkpoints","run-browser-1#case-07-quality-errors","run-browser-1#case-07-diagnostic-errors","run-browser-1#case-07-missing-signals","run-browser-1#case-07-unexpected-browser-errors","run-browser-1#case-07-complete-goals","run-browser-1#case-07-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 복수 날짜, zero-volume 완료일, 윤년 포함 연간 모든 날짜의 중복/순서/개수, 원요청 asOf 및 reload 일치.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L152","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L157","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L221"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"persisted-annual-date-set, rendered-count-and-grass, reload-count-and-grass, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/case.json#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L199","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-008-8-0","app-source-current#CASE-008-8-1","app-source-current#CASE-008-8-2","app-source-current#CASE-008-8-3","run-browser-1#case-07-checkpoints","run-browser-1#case-07-quality-errors","run-browser-1#case-07-diagnostic-errors","run-browser-1#case-07-missing-signals","run-browser-1#case-07-unexpected-browser-errors","run-browser-1#case-07-complete-goals","run-browser-1#case-07-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 0kg 운동일을 포함해 원본 완료 session과 정확히 같은 날짜들만 연간 잔디에서 활성화되어야 한다. 실제 DOM에 대응하는 대표 control 'case-008-zero-volume-day-not-colored'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/case.json#L25","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-008-9-0","app-source-current#CASE-008-9-1","app-source-current#CASE-008-9-2","app-source-current#CASE-008-9-3","run-browser-1#case-07-control-0-normal-value","run-browser-1#case-07-control-0-normal","run-browser-1#case-07-control-0-negative-value","run-browser-1#case-07-control-0-negative","run-browser-1#case-07-control-0-restored-value","run-browser-1#case-07-control-0-restored","run-browser-1#case-07-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L199","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L136","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-008-10-0","app-source-current#CASE-008-10-1","app-source-current#CASE-008-10-2","app-source-current#CASE-008-10-3","run-browser-1#case-07-rpc-observers","run-browser-1#case-07-cleanup-completed","run-browser-1#case-07-cleanup-resources","run-browser-1#case-07-listener-owners","run-browser-1#case-07-page-0-pageClosed","run-browser-1#case-07-page-0-routeCleanup","run-browser-1#case-07-page-0-observerDisposal","run-browser-1#case-07-page-0-currentPending","run-browser-1#case-07-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 4713ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-008-11-0","app-source-current#CASE-008-11-1","run-browser-1#case-07-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L199"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-008-mobile-report-workout-days-grass-round-trip/regression.spec.mjs#L17"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-008-15-0","app-source-current#CASE-008-15-1","app-source-current#CASE-008-15-2","app-source-current#CASE-008-15-3","run-browser-1#case-07-diagnostic-count","run-browser-1#case-07-diagnostic-revision","run-browser-1#case-07-diagnostic-runId","run-browser-1#case-07-diagnostic-attempt","run-browser-1#case-07-diagnostic-project","run-browser-1#case-07-diagnostic-locale","run-browser-1#case-07-diagnostic-timezone","run-browser-1#case-07-diagnostic-startedAt","run-browser-1#case-07-diagnostic-finishedAt","run-browser-1#case-07-diagnostic-cleanupStage","run-browser-1#case-07-diagnostic-status","run-browser-1#case-07-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-009","title":"Onboarding profile data round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L15","checks":{"1":{"status":"P","reason":"정적: 신규 사용자가 모바일 온보딩에서 입력한 주 운동 스타일, 키, 체중, 골격근량, 체지방률, 초기 1RM이 하나의 완료 요청으로 저장되고 새 인증 세션과 새로고침 뒤에도 온보딩을 반복하지 않아야 한다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L40"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: UI에 입력한 style/sex/178.4cm/82.4kg/39.7kg/17.3%와 각 초기1RM 상수를 authenticated reads 및 원본 행에 대조한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L151"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Onboarding profile data round trip: 실제 완료한 필수 상황·목표 checkpoint는 mobile-onboarding-submit, profile-storage-readback, fresh-auth-reload, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 입력 프로필을 완료 저장한 사용자는 새 인증 세션과 reload 뒤 온보딩을 반복하지 않아야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L81"],"evidenceRefs":["app-source-current#CASE-009-6-0","app-source-current#CASE-009-6-1","app-source-current#CASE-009-6-2","app-source-current#CASE-009-6-3","run-browser-1#case-08-goal-checkpoints","run-browser-1#case-08-checkpoints","run-browser-1#case-08-quality-errors","run-browser-1#case-08-diagnostic-errors","run-browser-1#case-08-missing-signals","run-browser-1#case-08-unexpected-browser-errors","run-browser-1#case-08-complete-goals","run-browser-1#case-08-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 신규 requiresOnboarding 확인, 완료 요청 성공, 동의/초기PR 기록, 새 인증 context와 reload 뒤 온보딩 재노출0.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L155","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L202"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"mobile-onboarding-submit, profile-storage-readback, fresh-auth-reload, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/case.json#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L216","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-009-8-0","app-source-current#CASE-009-8-1","app-source-current#CASE-009-8-2","app-source-current#CASE-009-8-3","run-browser-1#case-08-checkpoints","run-browser-1#case-08-quality-errors","run-browser-1#case-08-diagnostic-errors","run-browser-1#case-08-missing-signals","run-browser-1#case-08-unexpected-browser-errors","run-browser-1#case-08-complete-goals","run-browser-1#case-08-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 입력 프로필을 완료 저장한 사용자는 새 인증 세션과 reload 뒤 온보딩을 반복하지 않아야 한다. 실제 DOM에 대응하는 대표 control 'case-009-completed-onboarding-shown-again'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-009-9-0","app-source-current#CASE-009-9-1","app-source-current#CASE-009-9-2","app-source-current#CASE-009-9-3","run-browser-1#case-08-control-0-normal-value","run-browser-1#case-08-control-0-normal","run-browser-1#case-08-control-0-negative-value","run-browser-1#case-08-control-0-negative","run-browser-1#case-08-control-0-restored-value","run-browser-1#case-08-control-0-restored","run-browser-1#case-08-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L216","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-009-10-0","app-source-current#CASE-009-10-1","app-source-current#CASE-009-10-2","app-source-current#CASE-009-10-3","run-browser-1#case-08-rpc-observers","run-browser-1#case-08-cleanup-completed","run-browser-1#case-08-cleanup-resources","run-browser-1#case-08-listener-owners","run-browser-1#case-08-page-0-pageClosed","run-browser-1#case-08-page-0-routeCleanup","run-browser-1#case-08-page-0-observerDisposal","run-browser-1#case-08-page-0-currentPending","run-browser-1#case-08-page-0-previousDocumentPending","run-browser-1#case-08-page-1-pageClosed","run-browser-1#case-08-page-1-routeCleanup","run-browser-1#case-08-page-1-observerDisposal","run-browser-1#case-08-page-1-currentPending","run-browser-1#case-08-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 3160ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-009-11-0","app-source-current#CASE-009-11-1","run-browser-1#case-08-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L216"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-009-onboarding-profile-data-round-trip/regression.spec.mjs#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-009-15-0","app-source-current#CASE-009-15-1","app-source-current#CASE-009-15-2","app-source-current#CASE-009-15-3","run-browser-1#case-08-diagnostic-count","run-browser-1#case-08-diagnostic-revision","run-browser-1#case-08-diagnostic-runId","run-browser-1#case-08-diagnostic-attempt","run-browser-1#case-08-diagnostic-project","run-browser-1#case-08-diagnostic-locale","run-browser-1#case-08-diagnostic-timezone","run-browser-1#case-08-diagnostic-startedAt","run-browser-1#case-08-diagnostic-finishedAt","run-browser-1#case-08-diagnostic-cleanupStage","run-browser-1#case-08-diagnostic-status","run-browser-1#case-08-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-010","title":"Stale lazy chunk auto recovery","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L15","checks":{"1":{"status":"P","reason":"정적: 사용자는 배포 전에 열어둔 모바일 앱에서 피드처럼 아직 열지 않은 화면을 눌러 이전 해시 청크가 사라졌더라도 앱이 자동으로 정확히 한 번만 새로고침되고, 같은 동작을 다시 선택하면 최신 화면이 표시되며 인증 상태와 데이터가 보존되고 무한 새로고침이나 오류 화면이 발생하지 않는다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은session-storage 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L58"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: warmup 완료 mark, 실제 문서 요청, 영속 guard 및 중복 preloadError의 defaultPrevented=false를 함께 검사한다. 제품은 guard 존재 시 동기 false를 반환하고 성공할 때만 setTimeout(...,0)으로 reload를 예약한다. 250/500ms는 해당 사건 뒤 추가 요청 부재의 유한 관측창이며 준비 완료 추정이나 무한 시간의 부재 증명이 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L83","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L94","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L152","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/src/react/vite/staleChunkRecovery.ts#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/src/react/vite/staleChunkRecovery.ts#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: Feed 청크404 정확1회, 자동 top-level reload 정확1회, guard version1, 그다음 feed 표시와 전체 청크요청2회를 명시한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L161","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L165"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Stale lazy chunk auto recovery: 실제 완료한 필수 상황·목표 checkpoint는 authenticated-state-before-recovery, single-automatic-reload, recovered-feed-route, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 첫 자동 재로드 이후 같은 탭의 재로드 예산을 소비했다는 영속 guard가 남아야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L83","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L94","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L102"],"evidenceRefs":["app-source-current#CASE-010-6-0","app-source-current#CASE-010-6-1","app-source-current#CASE-010-6-2","app-source-current#CASE-010-6-3","run-browser-1#case-09-goal-checkpoints","run-browser-1#case-09-checkpoints","run-browser-1#case-09-quality-errors","run-browser-1#case-09-diagnostic-errors","run-browser-1#case-09-missing-signals","run-browser-1#case-09-unexpected-browser-errors","run-browser-1#case-09-complete-goals","run-browser-1#case-09-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: warmup 완료 mark, 실제 문서 요청, 영속 guard 및 중복 preloadError의 defaultPrevented=false를 함께 검사한다. 제품은 guard 존재 시 동기 false를 반환하고 성공할 때만 setTimeout(...,0)으로 reload를 예약한다. 250/500ms는 해당 사건 뒤 추가 요청 부재의 유한 관측창이며 준비 완료 추정이나 무한 시간의 부재 증명이 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L83","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L87","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L92","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L151","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L167","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/src/react/vite/staleChunkRecovery.ts#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/src/react/vite/staleChunkRecovery.ts#L154"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"authenticated-state-before-recovery, single-automatic-reload, recovered-feed-route, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/case.json#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-010-8-0","app-source-current#CASE-010-8-1","app-source-current#CASE-010-8-2","app-source-current#CASE-010-8-3","run-browser-1#case-09-checkpoints","run-browser-1#case-09-quality-errors","run-browser-1#case-09-diagnostic-errors","run-browser-1#case-09-missing-signals","run-browser-1#case-09-unexpected-browser-errors","run-browser-1#case-09-complete-goals","run-browser-1#case-09-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 첫 자동 재로드 이후 같은 탭의 재로드 예산을 소비했다는 영속 guard가 남아야 한다. 실제 sessionStorage에 대응하는 대표 control 'case-010-single-reload-budget-guard-lost'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-010-9-0","app-source-current#CASE-010-9-1","app-source-current#CASE-010-9-2","app-source-current#CASE-010-9-3","run-browser-1#case-09-control-0-normal-value","run-browser-1#case-09-control-0-normal","run-browser-1#case-09-control-0-negative-value","run-browser-1#case-09-control-0-negative","run-browser-1#case-09-control-0-restored-value","run-browser-1#case-09-control-0-restored","run-browser-1#case-09-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-010-10-0","app-source-current#CASE-010-10-1","app-source-current#CASE-010-10-2","app-source-current#CASE-010-10-3","run-browser-1#case-09-rpc-observers","run-browser-1#case-09-cleanup-completed","run-browser-1#case-09-cleanup-resources","run-browser-1#case-09-listener-owners","run-browser-1#case-09-page-0-pageClosed","run-browser-1#case-09-page-0-routeCleanup","run-browser-1#case-09-page-0-observerDisposal","run-browser-1#case-09-page-0-currentPending","run-browser-1#case-09-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 2822ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-010-11-0","app-source-current#CASE-010-11-1","run-browser-1#case-09-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L173"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-010-stale-lazy-chunk-auto-recovery/regression.spec.mjs#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-010-15-0","app-source-current#CASE-010-15-1","app-source-current#CASE-010-15-2","app-source-current#CASE-010-15-3","run-browser-1#case-09-diagnostic-count","run-browser-1#case-09-diagnostic-revision","run-browser-1#case-09-diagnostic-runId","run-browser-1#case-09-diagnostic-attempt","run-browser-1#case-09-diagnostic-project","run-browser-1#case-09-diagnostic-locale","run-browser-1#case-09-diagnostic-timezone","run-browser-1#case-09-diagnostic-startedAt","run-browser-1#case-09-diagnostic-finishedAt","run-browser-1#case-09-diagnostic-cleanupStage","run-browser-1#case-09-diagnostic-status","run-browser-1#case-09-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-011","title":"Mobile empty drafts discard and an authored workout resumes through completed storage","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L19","checks":{"1":{"status":"P","reason":"정적: 사용자가 내용이 없는 새 모바일 운동 기록을 현재 화면의 종료·삭제 동작으로 버리면 앱은 이를 진행 중인 기록으로 보존하지 않으며, 기존 버전이 남긴 시작 단계 제목뿐인 초안은 기존 시작 화면으로 복원되더라도 X로 닫은 뒤 브라우저 저장소에서 제거되어 새로고침 후 `마저 기록 작성하기`가 다시 나타나지 않아야 한다. 실제로 종목·무게·횟수·제목을 입력한 운동은 반대로 사용자 소유 IndexedDB 초안에 보존되어야 한다. 페이지를 닫고 같은 브라우저 저장소로 재진입한 뒤 이어하기를 누르면 동일 초안 식별자와 입력을 복원하고, 사용자가 세트·종목·운동을 완료하면 단일 서버 원본으로 저장되어 다시 열어도 같은 값을 보여야 한다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은indexeddb 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/case.json#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L39"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L207","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 빈 초안 null/서버 baseline 불변과 직접 입력한 제목·63kg×5·완료전false를 구분한다. 저장 전에 읽은 실제 표시 날짜/id를 재진입 및 서버 값과 비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L224","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L231"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Mobile empty drafts discard and an authored workout resumes through completed storage: 실제 완료한 필수 상황·목표 checkpoint는 untouched-record-discard, legacy-resume-close, no-server-write, authored-draft-persisted, authored-draft-page-reentry, resumed-workout-committed, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: legacy 제목뿐인 초안을 resume 후 닫으면 owner IndexedDB row가 없어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L138"],"evidenceRefs":["app-source-current#CASE-011-6-0","app-source-current#CASE-011-6-1","app-source-current#CASE-011-6-2","app-source-current#CASE-011-6-3","run-browser-1#case-10-goal-checkpoints","run-browser-1#case-10-checkpoints","run-browser-1#case-10-quality-errors","run-browser-1#case-10-diagnostic-errors","run-browser-1#case-10-missing-signals","run-browser-1#case-10-unexpected-browser-errors","run-browser-1#case-10-complete-goals","run-browser-1#case-10-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 새 빈 기록 버리기, legacy title-only 삭제, 실제 작성 초안의 page close/resume, identity/입력 보존, 단일 source 서버행 및 queue/draft 비움.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L254"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"untouched-record-discard, legacy-resume-close, no-server-write, authored-draft-persisted, authored-draft-page-reentry, resumed-workout-committed, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/case.json#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-011-8-0","app-source-current#CASE-011-8-1","app-source-current#CASE-011-8-2","app-source-current#CASE-011-8-3","run-browser-1#case-10-checkpoints","run-browser-1#case-10-quality-errors","run-browser-1#case-10-diagnostic-errors","run-browser-1#case-10-missing-signals","run-browser-1#case-10-unexpected-browser-errors","run-browser-1#case-10-complete-goals","run-browser-1#case-10-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: legacy 제목뿐인 초안을 resume 후 닫으면 owner IndexedDB row가 없어야 한다. 소유 IndexedDB 행에 대응하는 대표 control 'case-011-discarded-title-only-draft-survives'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/case.json#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-011-9-0","app-source-current#CASE-011-9-1","app-source-current#CASE-011-9-2","app-source-current#CASE-011-9-3","run-browser-1#case-10-control-0-normal-value","run-browser-1#case-10-control-0-normal","run-browser-1#case-10-control-0-negative-value","run-browser-1#case-10-control-0-negative","run-browser-1#case-10-control-0-restored-value","run-browser-1#case-10-control-0-restored","run-browser-1#case-10-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-011-10-0","app-source-current#CASE-011-10-1","app-source-current#CASE-011-10-2","app-source-current#CASE-011-10-3","run-browser-1#case-10-rpc-observers","run-browser-1#case-10-cleanup-completed","run-browser-1#case-10-cleanup-resources","run-browser-1#case-10-listener-owners","run-browser-1#case-10-page-0-pageClosed","run-browser-1#case-10-page-0-routeCleanup","run-browser-1#case-10-page-0-observerDisposal","run-browser-1#case-10-page-0-currentPending","run-browser-1#case-10-page-0-previousDocumentPending","run-browser-1#case-10-page-1-pageClosed","run-browser-1#case-10-page-1-routeCleanup","run-browser-1#case-10-page-1-observerDisposal","run-browser-1#case-10-page-1-currentPending","run-browser-1#case-10-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 14142ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-011-11-0","app-source-current#CASE-011-11-1","run-browser-1#case-10-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L261"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-011-mobile-empty-start-resume-ghost/regression.spec.mjs#L17"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-011-15-0","app-source-current#CASE-011-15-1","app-source-current#CASE-011-15-2","app-source-current#CASE-011-15-3","run-browser-1#case-10-diagnostic-count","run-browser-1#case-10-diagnostic-revision","run-browser-1#case-10-diagnostic-runId","run-browser-1#case-10-diagnostic-attempt","run-browser-1#case-10-diagnostic-project","run-browser-1#case-10-diagnostic-locale","run-browser-1#case-10-diagnostic-timezone","run-browser-1#case-10-diagnostic-startedAt","run-browser-1#case-10-diagnostic-finishedAt","run-browser-1#case-10-diagnostic-cleanupStage","run-browser-1#case-10-diagnostic-status","run-browser-1#case-10-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-012","title":"Boot auth outage preserves minimized snapshot access","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L24","checks":{"1":{"status":"P","reason":"정적: 저장된 로그인 세션과 최소화된 홈 스냅샷이 있는 기존 사용자는 앱 부팅 중 인증 프로필 요청이 일시적으로 두 번 실패해도 로그인 화면이나 오류 화면으로 강등되지 않고 동일한 사용자 소유권과 degradedReady 열람을 유지한 채 세 번째 재시도로 온라인 홈에 복귀하며, 새 진입에서도 같은 인증 사용자와 데이터 접근을 유지해야 한다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은indexeddb 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/case.json#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L90"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L90","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L87","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 고정 allowlist/schema/소유자 검증을 통과한 live snapshot을 준비하고 두503 전후 동일성을 비교한다. auth owner·onboarding완료 및 lifecycle 순서를 독립 상수로 기대한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L92","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L112","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L135"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Boot auth outage preserves minimized snapshot access: 실제 완료한 필수 상황·목표 checkpoint는 owner-snapshot-survives-declared-outage, third-attempt-recovers-online-home, fresh-tab-preserves-owner, journey-completion이다. 선언한 실패 bootstrap-profile-workspace-503:POST /rest/v1/rpc/get_profile_workspace의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=2와 누락/위반0도 확인했다. 목표: 두 bootstrap503 동안 기존 owner의 최소 snapshot이 유지되어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L87"],"evidenceRefs":["app-source-current#CASE-012-6-0","app-source-current#CASE-012-6-1","app-source-current#CASE-012-6-2","app-source-current#CASE-012-6-3","run-browser-1#case-11-fault-0-id","run-browser-1#case-11-fault-0-method","run-browser-1#case-11-fault-0-path","run-browser-1#case-11-fault-0-status","run-browser-1#case-11-fault-0-requestCount","run-browser-1#case-11-fault-0-requiredAttempts","run-browser-1#case-11-fault-0-observedAttempts","run-browser-1#case-11-fault-0-missingAttempts","run-browser-1#case-11-fault-0-violations","run-browser-1#case-11-required-event-expectedCount","run-browser-1#case-11-required-event-observedCount","run-browser-1#case-11-required-event-missing","run-browser-1#case-11-required-event-violations","run-browser-1#case-11-required-event-0-id","run-browser-1#case-11-required-event-0-operationName","run-browser-1#case-11-required-event-0-receiptStored","run-browser-1#case-11-required-event-0-storedRowVerified","run-browser-1#case-11-required-event-1-id","run-browser-1#case-11-required-event-1-operationName","run-browser-1#case-11-required-event-1-receiptStored","run-browser-1#case-11-required-event-1-storedRowVerified","run-browser-1#case-11-goal-checkpoints","run-browser-1#case-11-checkpoints","run-browser-1#case-11-quality-errors","run-browser-1#case-11-diagnostic-errors","run-browser-1#case-11-missing-signals","run-browser-1#case-11-unexpected-browser-errors","run-browser-1#case-11-complete-goals","run-browser-1#case-11-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 정확2개503+보류3번째, snapshot삭제 금지, 로그인/오류강등0, gate해제 후 online과 새탭 동일owner.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L92","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L112","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L160"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"owner-snapshot-survives-declared-outage, third-attempt-recovers-online-home, fresh-tab-preserves-owner, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/case.json#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-012-8-0","app-source-current#CASE-012-8-1","app-source-current#CASE-012-8-2","app-source-current#CASE-012-8-3","run-browser-1#case-11-checkpoints","run-browser-1#case-11-quality-errors","run-browser-1#case-11-diagnostic-errors","run-browser-1#case-11-missing-signals","run-browser-1#case-11-unexpected-browser-errors","run-browser-1#case-11-complete-goals","run-browser-1#case-11-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 두 bootstrap503 동안 기존 owner의 최소 snapshot이 유지되어야 한다. 소유 IndexedDB 행에 대응하는 대표 control 'case-012-boot-outage-deletes-owner-snapshot'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/case.json#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-012-9-0","app-source-current#CASE-012-9-1","app-source-current#CASE-012-9-2","app-source-current#CASE-012-9-3","run-browser-1#case-11-control-0-normal-value","run-browser-1#case-11-control-0-normal","run-browser-1#case-11-control-0-negative-value","run-browser-1#case-11-control-0-negative","run-browser-1#case-11-control-0-restored-value","run-browser-1#case-11-control-0-restored","run-browser-1#case-11-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 5개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-012-10-0","app-source-current#CASE-012-10-1","app-source-current#CASE-012-10-2","app-source-current#CASE-012-10-3","run-browser-1#case-11-rpc-observers","run-browser-1#case-11-cleanup-completed","run-browser-1#case-11-cleanup-resources","run-browser-1#case-11-listener-owners","run-browser-1#case-11-page-0-pageClosed","run-browser-1#case-11-page-0-routeCleanup","run-browser-1#case-11-page-0-observerDisposal","run-browser-1#case-11-page-0-currentPending","run-browser-1#case-11-page-0-previousDocumentPending","run-browser-1#case-11-page-1-pageClosed","run-browser-1#case-11-page-1-routeCleanup","run-browser-1#case-11-page-1-observerDisposal","run-browser-1#case-11-page-1-currentPending","run-browser-1#case-11-page-1-previousDocumentPending","run-browser-1#case-11-page-2-pageClosed","run-browser-1#case-11-page-2-routeCleanup","run-browser-1#case-11-page-2-observerDisposal","run-browser-1#case-11-page-2-currentPending","run-browser-1#case-11-page-2-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6612ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-012-11-0","app-source-current#CASE-012-11-1","run-browser-1#case-11-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적 보강 확인: snapshot 읽기와 재조회 간 대기를 하나의 performance.now 마감으로 묶고, 각 작업 후에도 마감을 재확인하며 timeoutMs>10000을 거절한다. 횟수 제한만으로 wall 상한을 주장하던 공백이 코드에서 해소됐다. 실제 CASE 실행의 시간 결과는 #11 및 공통 실행 검증과 별개다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/appShellSnapshotCheckpoint.test.mjs#L61"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-012-boot-auth-outage-non-demotion/regression.spec.mjs#L21"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-012-15-0","app-source-current#CASE-012-15-1","app-source-current#CASE-012-15-2","app-source-current#CASE-012-15-3","run-browser-1#case-11-diagnostic-count","run-browser-1#case-11-diagnostic-revision","run-browser-1#case-11-diagnostic-runId","run-browser-1#case-11-diagnostic-attempt","run-browser-1#case-11-diagnostic-project","run-browser-1#case-11-diagnostic-locale","run-browser-1#case-11-diagnostic-timezone","run-browser-1#case-11-diagnostic-startedAt","run-browser-1#case-11-diagnostic-finishedAt","run-browser-1#case-11-diagnostic-cleanupStage","run-browser-1#case-11-diagnostic-status","run-browser-1#case-11-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-013","title":"TOKEN_REFRESHED JWT storm preserves session and minimized snapshot","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L25","checks":{"1":{"status":"P","reason":"정적: 저장 세션을 실제로 TOKEN_REFRESHED 한 직후 profile-workspace가 연속 두 번 JWT 401을 반환해도 기존 사용자 세션과 최소화된 홈 스냅샷은 보존되고, 앱은 첫 401의 세션 재확인과 두 번째 storm 차단을 거쳐 재로그인이나 오류 화면 없이 세 번째 성공으로 온라인 홈에 복귀하며 새 진입에서도 갱신된 동일 사용자 세션을 유지해야 한다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은indexeddb 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/case.json#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L117"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L109","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L172","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 갱신 성공→JWT401 순서, TOKEN_REFRESHED 있음/SIGNED_OUT 없음, 실제 owner와 미래 expiry, 검증된 live snapshot의 동일성을 기대한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L135","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L136","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L172"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"TOKEN_REFRESHED JWT storm preserves session and minimized snapshot: 실제 완료한 필수 상황·목표 checkpoint는 refreshed-session-survives-jwt-storm, third-attempt-recovers-online-home, fresh-tab-keeps-refreshed-session, journey-completion이다. 선언한 실패 token-refreshed-profile-workspace-401:POST /rest/v1/rpc/get_profile_workspace의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=3와 누락/위반0도 확인했다. 목표: 실제 TOKEN_REFRESHED와 두 JWT401 뒤에도 최소 snapshot의 사용자 소유권이 유지되어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L109"],"evidenceRefs":["app-source-current#CASE-013-6-0","app-source-current#CASE-013-6-1","app-source-current#CASE-013-6-2","app-source-current#CASE-013-6-3","run-browser-1#case-12-fault-0-id","run-browser-1#case-12-fault-0-method","run-browser-1#case-12-fault-0-path","run-browser-1#case-12-fault-0-status","run-browser-1#case-12-fault-0-requestCount","run-browser-1#case-12-fault-0-requiredAttempts","run-browser-1#case-12-fault-0-observedAttempts","run-browser-1#case-12-fault-0-missingAttempts","run-browser-1#case-12-fault-0-violations","run-browser-1#case-12-required-event-expectedCount","run-browser-1#case-12-required-event-observedCount","run-browser-1#case-12-required-event-missing","run-browser-1#case-12-required-event-violations","run-browser-1#case-12-required-event-0-id","run-browser-1#case-12-required-event-0-operationName","run-browser-1#case-12-required-event-0-receiptStored","run-browser-1#case-12-required-event-0-storedRowVerified","run-browser-1#case-12-required-event-1-id","run-browser-1#case-12-required-event-1-operationName","run-browser-1#case-12-required-event-1-receiptStored","run-browser-1#case-12-required-event-1-storedRowVerified","run-browser-1#case-12-required-event-2-id","run-browser-1#case-12-required-event-2-operationName","run-browser-1#case-12-required-event-2-receiptStored","run-browser-1#case-12-required-event-2-storedRowVerified","run-browser-1#case-12-goal-checkpoints","run-browser-1#case-12-checkpoints","run-browser-1#case-12-quality-errors","run-browser-1#case-12-diagnostic-errors","run-browser-1#case-12-missing-signals","run-browser-1#case-12-unexpected-browser-errors","run-browser-1#case-12-complete-goals","run-browser-1#case-12-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 토큰갱신 뒤2개JWT401·3번째보류, 소유권/스냅샷 유지, 강등0, 원래 세션으로 새탭 재진입.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L137","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L157","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L208"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"refreshed-session-survives-jwt-storm, third-attempt-recovers-online-home, fresh-tab-keeps-refreshed-session, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/case.json#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-013-8-0","app-source-current#CASE-013-8-1","app-source-current#CASE-013-8-2","app-source-current#CASE-013-8-3","run-browser-1#case-12-checkpoints","run-browser-1#case-12-quality-errors","run-browser-1#case-12-diagnostic-errors","run-browser-1#case-12-missing-signals","run-browser-1#case-12-unexpected-browser-errors","run-browser-1#case-12-complete-goals","run-browser-1#case-12-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 실제 TOKEN_REFRESHED와 두 JWT401 뒤에도 최소 snapshot의 사용자 소유권이 유지되어야 한다. 소유 IndexedDB 행에 대응하는 대표 control 'case-013-jwt-storm-snapshot-owner-switch'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/case.json#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-013-9-0","app-source-current#CASE-013-9-1","app-source-current#CASE-013-9-2","app-source-current#CASE-013-9-3","run-browser-1#case-12-control-0-normal-value","run-browser-1#case-12-control-0-normal","run-browser-1#case-12-control-0-negative-value","run-browser-1#case-12-control-0-negative","run-browser-1#case-12-control-0-restored-value","run-browser-1#case-12-control-0-restored","run-browser-1#case-12-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 6개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L230","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-013-10-0","app-source-current#CASE-013-10-1","app-source-current#CASE-013-10-2","app-source-current#CASE-013-10-3","run-browser-1#case-12-rpc-observers","run-browser-1#case-12-cleanup-completed","run-browser-1#case-12-cleanup-resources","run-browser-1#case-12-listener-owners","run-browser-1#case-12-page-0-pageClosed","run-browser-1#case-12-page-0-routeCleanup","run-browser-1#case-12-page-0-observerDisposal","run-browser-1#case-12-page-0-currentPending","run-browser-1#case-12-page-0-previousDocumentPending","run-browser-1#case-12-page-1-pageClosed","run-browser-1#case-12-page-1-routeCleanup","run-browser-1#case-12-page-1-observerDisposal","run-browser-1#case-12-page-1-currentPending","run-browser-1#case-12-page-1-previousDocumentPending","run-browser-1#case-12-page-2-pageClosed","run-browser-1#case-12-page-2-routeCleanup","run-browser-1#case-12-page-2-observerDisposal","run-browser-1#case-12-page-2-currentPending","run-browser-1#case-12-page-2-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6690ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-013-11-0","app-source-current#CASE-013-11-1","run-browser-1#case-12-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적 보강 확인: snapshot 읽기와 재조회 간 대기를 하나의 performance.now 마감으로 묶고, 각 작업 후에도 마감을 재확인하며 timeoutMs>10000을 거절한다. 횟수 제한만으로 wall 상한을 주장하던 공백이 코드에서 해소됐다. 실제 CASE 실행의 시간 결과는 #11 및 공통 실행 검증과 별개다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/appShellSnapshotCheckpoint.test.mjs#L61"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-013-token-refreshed-jwt-storm-session-preservation/regression.spec.mjs#L22"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-013-15-0","app-source-current#CASE-013-15-1","app-source-current#CASE-013-15-2","app-source-current#CASE-013-15-3","run-browser-1#case-12-diagnostic-count","run-browser-1#case-12-diagnostic-revision","run-browser-1#case-12-diagnostic-runId","run-browser-1#case-12-diagnostic-attempt","run-browser-1#case-12-diagnostic-project","run-browser-1#case-12-diagnostic-locale","run-browser-1#case-12-diagnostic-timezone","run-browser-1#case-12-diagnostic-startedAt","run-browser-1#case-12-diagnostic-finishedAt","run-browser-1#case-12-diagnostic-cleanupStage","run-browser-1#case-12-diagnostic-status","run-browser-1#case-12-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-014","title":"Cold start reads the minimized owner snapshot","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L24","checks":{"1":{"status":"P","reason":"정적: 기존 앱 문서와 연결 리더가 모두 사라진 뒤에도 저장 세션과 schemaVersion 3 HOME_MINIMIZED snapshot (IndexedDB database version 2)을 가진 사용자는 새 모바일 앱 문서에서 두 번의 정확한 profile-workspace 503 동안 같은 owner의 degradedReady Home을 읽고, 실제 세 번째 성공 뒤 live Home과 동일 owner 재진입을 회복해야 한다. 현재 명세와 실제 검사 계층을 대조했다. 실행 합격 판정은 별도 U 항목에 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/case.json#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L107"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"seed 문서를 열기 전 실제 catalog/month/순차 warming 마지막 volume 관측기를 등록하고, 각 완료 1회 이상·pending0·failed0을 단언한 뒤 manifest로 이동한다. Home 노출이나 순간적인 quiet만으로 seed 준비 완료를 판단하지 않는다. cold/reentry의 원래 목표와 단언은 보존했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L132","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 실제 앱이 만든 schema3 최소 snapshot의 allowlist와 owner를 검증해 seed로 삼고 기존 앱 문서를 제거한 뒤 동일 payload/owner와 online회복을 비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L109","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L116","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L145","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Cold start reads the minimized owner snapshot: 실제 완료한 필수 상황·목표 checkpoint는 cold-document-reads-owner-snapshot, third-attempt-recovers-live-owner, later-page-keeps-owner, journey-completion이다. 선언한 실패 cold-start-profile-workspace-503:POST /rest/v1/rpc/get_profile_workspace의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=2와 누락/위반0도 확인했다. 목표: 기존 문서가 사라진 cold-start 탭에서도 저장된 최소 Home payload를 읽을 수 있어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L99"],"evidenceRefs":["app-source-current#CASE-014-6-0","app-source-current#CASE-014-6-1","app-source-current#CASE-014-6-2","app-source-current#CASE-014-6-3","run-browser-1#case-13-fault-0-id","run-browser-1#case-13-fault-0-method","run-browser-1#case-13-fault-0-path","run-browser-1#case-13-fault-0-status","run-browser-1#case-13-fault-0-requestCount","run-browser-1#case-13-fault-0-requiredAttempts","run-browser-1#case-13-fault-0-observedAttempts","run-browser-1#case-13-fault-0-missingAttempts","run-browser-1#case-13-fault-0-violations","run-browser-1#case-13-required-event-expectedCount","run-browser-1#case-13-required-event-observedCount","run-browser-1#case-13-required-event-missing","run-browser-1#case-13-required-event-violations","run-browser-1#case-13-required-event-0-id","run-browser-1#case-13-required-event-0-operationName","run-browser-1#case-13-required-event-0-receiptStored","run-browser-1#case-13-required-event-0-storedRowVerified","run-browser-1#case-13-required-event-1-id","run-browser-1#case-13-required-event-1-operationName","run-browser-1#case-13-required-event-1-receiptStored","run-browser-1#case-13-required-event-1-storedRowVerified","run-browser-1#case-13-goal-checkpoints","run-browser-1#case-13-checkpoints","run-browser-1#case-13-quality-errors","run-browser-1#case-13-diagnostic-errors","run-browser-1#case-13-missing-signals","run-browser-1#case-13-unexpected-browser-errors","run-browser-1#case-13-complete-goals","run-browser-1#case-13-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 기존 document 소멸, 새문서2개503·3번째보류, 실제owner snapshot 유지·로그인강등0, 새탭회복.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L116","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L145","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L179"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"cold-document-reads-owner-snapshot, third-attempt-recovers-live-owner, later-page-keeps-owner, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/case.json#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-014-8-0","app-source-current#CASE-014-8-1","app-source-current#CASE-014-8-2","app-source-current#CASE-014-8-3","run-browser-1#case-13-checkpoints","run-browser-1#case-13-quality-errors","run-browser-1#case-13-diagnostic-errors","run-browser-1#case-13-missing-signals","run-browser-1#case-13-unexpected-browser-errors","run-browser-1#case-13-complete-goals","run-browser-1#case-13-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 기존 문서가 사라진 cold-start 탭에서도 저장된 최소 Home payload를 읽을 수 있어야 한다. 소유 IndexedDB 행에 대응하는 대표 control 'case-014-cold-start-home-snapshot-payload-missing'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/case.json#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-014-9-0","app-source-current#CASE-014-9-1","app-source-current#CASE-014-9-2","app-source-current#CASE-014-9-3","run-browser-1#case-13-control-0-normal-value","run-browser-1#case-13-control-0-normal","run-browser-1#case-13-control-0-negative-value","run-browser-1#case-13-control-0-negative","run-browser-1#case-13-control-0-restored-value","run-browser-1#case-13-control-0-restored","run-browser-1#case-13-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 8개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-014-10-0","app-source-current#CASE-014-10-1","app-source-current#CASE-014-10-2","app-source-current#CASE-014-10-3","run-browser-1#case-13-rpc-observers","run-browser-1#case-13-cleanup-completed","run-browser-1#case-13-cleanup-resources","run-browser-1#case-13-listener-owners","run-browser-1#case-13-page-0-pageClosed","run-browser-1#case-13-page-0-routeCleanup","run-browser-1#case-13-page-0-observerDisposal","run-browser-1#case-13-page-0-currentPending","run-browser-1#case-13-page-0-previousDocumentPending","run-browser-1#case-13-page-1-pageClosed","run-browser-1#case-13-page-1-routeCleanup","run-browser-1#case-13-page-1-observerDisposal","run-browser-1#case-13-page-1-currentPending","run-browser-1#case-13-page-1-previousDocumentPending","run-browser-1#case-13-page-2-pageClosed","run-browser-1#case-13-page-2-routeCleanup","run-browser-1#case-13-page-2-observerDisposal","run-browser-1#case-13-page-2-currentPending","run-browser-1#case-13-page-2-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6708ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-014-11-0","app-source-current#CASE-014-11-1","run-browser-1#case-13-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적 보강 확인: snapshot 읽기와 재조회 간 대기를 하나의 performance.now 마감으로 묶고, 각 작업 후에도 마감을 재확인하며 timeoutMs>10000을 거절한다. 횟수 제한만으로 wall 상한을 주장하던 공백이 코드에서 해소됐다. 실제 CASE 실행의 시간 결과는 #11 및 공통 실행 검증과 별개다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/appShellSnapshotCheckpoint.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/appShellSnapshotCheckpoint.test.mjs#L61"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-014-cold-start-snapshot-reading/regression.spec.mjs#L21"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-014-15-0","app-source-current#CASE-014-15-1","app-source-current#CASE-014-15-2","app-source-current#CASE-014-15-3","run-browser-1#case-13-diagnostic-count","run-browser-1#case-13-diagnostic-revision","run-browser-1#case-13-diagnostic-runId","run-browser-1#case-13-diagnostic-attempt","run-browser-1#case-13-diagnostic-project","run-browser-1#case-13-diagnostic-locale","run-browser-1#case-13-diagnostic-timezone","run-browser-1#case-13-diagnostic-startedAt","run-browser-1#case-13-diagnostic-finishedAt","run-browser-1#case-13-diagnostic-cleanupStage","run-browser-1#case-13-diagnostic-status","run-browser-1#case-13-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-015","title":"Degraded create survives a failed recovery flush without duplicates","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L17","checks":{"1":{"status":"P","reason":"정적: 완료 화면 자동 저장의 첫 전송과 첫 recovery flush가 같은 503으로 실패해도 운동 기록은 정확히 한 개의 owner pending row와 동일 mutation identity로 보존되고(완료 화면에는 오류가 아니라 '동기화 후 점수 반영' 안내), 두 번째 복구 뒤 서버에 한 번만 생성된 다음 reload에서도 중복이나 대기 row 없이 보여야 한다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은indexeddb 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/case.json#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L113"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. recovery clock은 실제 현재 시각에서 설치하고 관측된 backoff만 전진한다. 고정 날짜나 요청 날짜를 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L152","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L157","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 실제 UI70×5와 정확owner pending1개를 기대한다. 최초행의 hash/body/identity를 실패재전송과 비교하고 fence/attempt +1, 최종 서버1개를 독립 상수로 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L174","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L237"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Degraded create survives a failed recovery flush without duplicates: 실제 완료한 필수 상황·목표 checkpoint는 initial-failure-durable-row, failed-flush-retains-row, second-recovery-persists-once, reload-keeps-one-session, journey-completion이다. 선언한 실패 completed-workout-create-and-first-flush-503:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=4와 누락/위반0도 확인했다. 목표: 동일 운동은 초기503과 recovery 재실패 동안 owner pending row 정확히1개로 남아야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L152"],"evidenceRefs":["app-source-current#CASE-015-6-0","app-source-current#CASE-015-6-1","app-source-current#CASE-015-6-2","app-source-current#CASE-015-6-3","run-browser-1#case-14-fault-0-id","run-browser-1#case-14-fault-0-method","run-browser-1#case-14-fault-0-path","run-browser-1#case-14-fault-0-status","run-browser-1#case-14-fault-0-requestCount","run-browser-1#case-14-fault-0-requiredAttempts","run-browser-1#case-14-fault-0-observedAttempts","run-browser-1#case-14-fault-0-missingAttempts","run-browser-1#case-14-fault-0-violations","run-browser-1#case-14-required-event-expectedCount","run-browser-1#case-14-required-event-observedCount","run-browser-1#case-14-required-event-missing","run-browser-1#case-14-required-event-violations","run-browser-1#case-14-required-event-0-id","run-browser-1#case-14-required-event-0-operationName","run-browser-1#case-14-required-event-0-receiptStored","run-browser-1#case-14-required-event-0-storedRowVerified","run-browser-1#case-14-required-event-1-id","run-browser-1#case-14-required-event-1-operationName","run-browser-1#case-14-required-event-1-receiptStored","run-browser-1#case-14-required-event-1-storedRowVerified","run-browser-1#case-14-required-event-2-id","run-browser-1#case-14-required-event-2-operationName","run-browser-1#case-14-required-event-2-receiptStored","run-browser-1#case-14-required-event-2-storedRowVerified","run-browser-1#case-14-required-event-3-id","run-browser-1#case-14-required-event-3-operationName","run-browser-1#case-14-required-event-3-receiptStored","run-browser-1#case-14-required-event-3-storedRowVerified","run-browser-1#case-14-goal-checkpoints","run-browser-1#case-14-checkpoints","run-browser-1#case-14-quality-errors","run-browser-1#case-14-diagnostic-errors","run-browser-1#case-14-missing-signals","run-browser-1#case-14-unexpected-browser-errors","run-browser-1#case-14-complete-goals","run-browser-1#case-14-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 최초503·첫복구503·두번째복구성공, pending중복/유실 금지, claim 재획득과만료, 동일body, 단일서버행/reloadqueue0.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L174","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L237","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L249"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"initial-failure-durable-row, failed-flush-retains-row, second-recovery-persists-once, reload-keeps-one-session, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/case.json#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-015-8-0","app-source-current#CASE-015-8-1","app-source-current#CASE-015-8-2","app-source-current#CASE-015-8-3","run-browser-1#case-14-checkpoints","run-browser-1#case-14-quality-errors","run-browser-1#case-14-diagnostic-errors","run-browser-1#case-14-missing-signals","run-browser-1#case-14-unexpected-browser-errors","run-browser-1#case-14-complete-goals","run-browser-1#case-14-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 동일 운동은 초기503과 recovery 재실패 동안 owner pending row 정확히1개로 남아야 한다. 소유 IndexedDB 행에 대응하는 대표 control 'case-015-duplicate-owner-pending-create'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/case.json#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-015-9-0","app-source-current#CASE-015-9-1","app-source-current#CASE-015-9-2","app-source-current#CASE-015-9-3","run-browser-1#case-14-control-0-normal-value","run-browser-1#case-14-control-0-normal","run-browser-1#case-14-control-0-negative-value","run-browser-1#case-14-control-0-negative","run-browser-1#case-14-control-0-restored-value","run-browser-1#case-14-control-0-restored","run-browser-1#case-14-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 5개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L402","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-015-10-0","app-source-current#CASE-015-10-1","app-source-current#CASE-015-10-2","app-source-current#CASE-015-10-3","run-browser-1#case-14-rpc-observers","run-browser-1#case-14-cleanup-completed","run-browser-1#case-14-cleanup-resources","run-browser-1#case-14-listener-owners","run-browser-1#case-14-page-0-pageClosed","run-browser-1#case-14-page-0-routeCleanup","run-browser-1#case-14-page-0-observerDisposal","run-browser-1#case-14-page-0-currentPending","run-browser-1#case-14-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 11826ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-015-11-0","app-source-current#CASE-015-11-1","run-browser-1#case-14-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L260"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-015-degraded-create-recovery-flush/regression.spec.mjs#L15"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-015-15-0","app-source-current#CASE-015-15-1","app-source-current#CASE-015-15-2","app-source-current#CASE-015-15-3","run-browser-1#case-14-diagnostic-count","run-browser-1#case-14-diagnostic-revision","run-browser-1#case-14-diagnostic-runId","run-browser-1#case-14-diagnostic-attempt","run-browser-1#case-14-diagnostic-project","run-browser-1#case-14-diagnostic-locale","run-browser-1#case-14-diagnostic-timezone","run-browser-1#case-14-diagnostic-startedAt","run-browser-1#case-14-diagnostic-finishedAt","run-browser-1#case-14-diagnostic-cleanupStage","run-browser-1#case-14-diagnostic-status","run-browser-1#case-14-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-016","title":"Desktop first plan create save crash and Home lockout","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L111","checks":{"1":{"status":"P","reason":"정적: 사용자는 운동일지에서 종목 A·B·C와 자유 기록 D로 새 운동 계획을 작성해 저장한 뒤 앱이 꺼지지 않고 바로 계획 카드를 볼 수 있으며, 새로고침 후에도 홈과 운동일지가 이번 달 계획 카드와 함께 정상적으로 열리고 저장한 종목·세트·자유 기록이 그대로 다시 보인다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L195"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L197","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L346","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L375","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 명시된 A/B/C 세트와 note D로 독립 expectedSetRows를 구성하여 UI입력·RPC·직접 DB의 세트 필드/자유기록을 비교하고 수정시 expected+1 revision을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L199","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L295","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L307","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L369","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L377","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L394"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Desktop first plan create save crash and Home lockout: 실제 완료한 필수 상황·목표 checkpoint는 save-shell-alive, home-reload-with-plan, existing-plan-edit-and-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 새 계획 저장 후 reload에서도 Home/일지가 접근 가능하고 저장한 계획에 진입할 수 있어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L237","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L197","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L206"],"evidenceRefs":["app-source-current#CASE-016-6-0","app-source-current#CASE-016-6-1","app-source-current#CASE-016-6-2","app-source-current#CASE-016-6-3","run-browser-2#case-15-goal-checkpoints","run-browser-2#case-15-checkpoints","run-browser-2#case-15-quality-errors","run-browser-2#case-15-diagnostic-errors","run-browser-2#case-15-missing-signals","run-browser-2#case-15-unexpected-browser-errors","run-browser-2#case-15-complete-goals","run-browser-2#case-15-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: create뒤 scrim0/홈·일지 정상, 자유기록과동적catalog, reload계획카드, 기존계획제목·첫중량수정/구child삭제와 재진입.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L224","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L272","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L301","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L323","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L375","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L391","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L408"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"save-shell-alive, home-reload-with-plan, existing-plan-edit-and-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/case.json#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L421","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-016-8-0","app-source-current#CASE-016-8-1","app-source-current#CASE-016-8-2","app-source-current#CASE-016-8-3","run-browser-2#case-15-checkpoints","run-browser-2#case-15-quality-errors","run-browser-2#case-15-diagnostic-errors","run-browser-2#case-15-missing-signals","run-browser-2#case-15-unexpected-browser-errors","run-browser-2#case-15-complete-goals","run-browser-2#case-15-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 새 계획 저장 후 reload에서도 Home/일지가 접근 가능하고 저장한 계획에 진입할 수 있어야 한다. 실제 DOM에 대응하는 대표 control 'case-016-saved-plan-home-remains-locked'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L237","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-016-9-0","app-source-current#CASE-016-9-1","app-source-current#CASE-016-9-2","app-source-current#CASE-016-9-3","run-browser-2#case-15-control-0-normal-value","run-browser-2#case-15-control-0-normal","run-browser-2#case-15-control-0-negative-value","run-browser-2#case-15-control-0-negative","run-browser-2#case-15-control-0-restored-value","run-browser-2#case-15-control-0-restored","run-browser-2#case-15-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L237","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L421","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-016-10-0","app-source-current#CASE-016-10-1","app-source-current#CASE-016-10-2","app-source-current#CASE-016-10-3","run-browser-2#case-15-rpc-observers","run-browser-2#case-15-cleanup-completed","run-browser-2#case-15-cleanup-resources","run-browser-2#case-15-listener-owners","run-browser-2#case-15-page-0-pageClosed","run-browser-2#case-15-page-0-routeCleanup","run-browser-2#case-15-page-0-observerDisposal","run-browser-2#case-15-page-0-currentPending","run-browser-2#case-15-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8807ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-016-11-0","app-source-current#CASE-016-11-1","run-browser-2#case-15-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L421"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-016-desktop-plan-create-save-crash-home-lockout/regression.spec.mjs#L109"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-016-15-0","app-source-current#CASE-016-15-1","app-source-current#CASE-016-15-2","app-source-current#CASE-016-15-3","run-browser-2#case-15-diagnostic-count","run-browser-2#case-15-diagnostic-revision","run-browser-2#case-15-diagnostic-runId","run-browser-2#case-15-diagnostic-attempt","run-browser-2#case-15-diagnostic-project","run-browser-2#case-15-diagnostic-locale","run-browser-2#case-15-diagnostic-timezone","run-browser-2#case-15-diagnostic-startedAt","run-browser-2#case-15-diagnostic-finishedAt","run-browser-2#case-15-diagnostic-cleanupStage","run-browser-2#case-15-diagnostic-status","run-browser-2#case-15-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-017","title":"Account deletion round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L27","checks":{"1":{"status":"P","reason":"정적: 로그인한 사용자가 확인 문구와 함께 계정 삭제를 요청하면 한 번의 요청으로 본인 Auth 계정과 데이터가 삭제되고 다른 사용자는 보존되어야 한다. 이 CASE는 직접 만든 완료 운동의 session·session_exercise_part·exercise_set_part 전체 원본과 공통 계정 잔존 검사 대상(profiles·body_metrics·user_manual_pr_records·user_consents·달력 파생 행), 스토리지 3버킷 개인 폴더의 삭제를 확인한다. 대조 사용자의 Auth·프로필·운동 전체 원본·스토리지 파일과 재진입 화면이 그대로 유지되는지도 확인한다. 현재 명세와 실제 검사 계층을 대조했다. 실행 합격 판정은 별도 U 항목에 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L77"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L91","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L164","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적 보강 확인: 삭제 전 대상74×5/대조58×8와 owner/행 개수를 독립 값으로 확인한다. 삭제 뒤 대상 child id는 직접 부재를 조회하고, 대조 session/part/set·profile 전체를 검증된 삭제 전 값과 비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L96","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L202","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L203","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L206"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Account deletion round trip: 실제 완료한 필수 상황·목표 checkpoint는 predelete-isolated-state, in-app-deletion-round-trip, control-render-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 계정 삭제 후 세 bucket의 해당 사용자 prefix에 파일이 남지 않아야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L164"],"evidenceRefs":["app-source-current#CASE-017-6-0","app-source-current#CASE-017-6-1","app-source-current#CASE-017-6-2","app-source-current#CASE-017-6-3","run-browser-2#case-16-goal-checkpoints","run-browser-2#case-16-checkpoints","run-browser-2#case-16-quality-errors","run-browser-2#case-16-diagnostic-errors","run-browser-2#case-16-missing-signals","run-browser-2#case-16-unexpected-browser-errors","run-browser-2#case-16-complete-goals","run-browser-2#case-16-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 보강 확인: 대상 Auth/명시 DB 범위/3 bucket의 삭제와 대조 Auth/profile/운동 전체 원본/파일·reload 보존을 명시한다. 대상 child 직접 잔존 조회와 대조 전체 비교가 추가됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L196","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L203","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L206"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"predelete-isolated-state, in-app-deletion-round-trip, control-render-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/case.json#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L286","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-017-8-0","app-source-current#CASE-017-8-1","app-source-current#CASE-017-8-2","app-source-current#CASE-017-8-3","run-browser-2#case-16-checkpoints","run-browser-2#case-16-quality-errors","run-browser-2#case-16-diagnostic-errors","run-browser-2#case-16-missing-signals","run-browser-2#case-16-unexpected-browser-errors","run-browser-2#case-16-complete-goals","run-browser-2#case-16-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 계정 삭제 후 세 bucket의 해당 사용자 prefix에 파일이 남지 않아야 한다. 소유 저장소 서비스에 대응하는 대표 control 'case-017-account-delete-leaves-storage-object'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-017-9-0","app-source-current#CASE-017-9-1","app-source-current#CASE-017-9-2","app-source-current#CASE-017-9-3","run-browser-2#case-16-control-0-normal-value","run-browser-2#case-16-control-0-normal","run-browser-2#case-16-control-0-negative-value","run-browser-2#case-16-control-0-negative","run-browser-2#case-16-control-0-restored-value","run-browser-2#case-16-control-0-restored","run-browser-2#case-16-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L286","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-017-10-0","app-source-current#CASE-017-10-1","app-source-current#CASE-017-10-2","app-source-current#CASE-017-10-3","run-browser-2#case-16-rpc-observers","run-browser-2#case-16-cleanup-completed","run-browser-2#case-16-cleanup-resources","run-browser-2#case-16-listener-owners","run-browser-2#case-16-page-0-pageClosed","run-browser-2#case-16-page-0-routeCleanup","run-browser-2#case-16-page-0-observerDisposal","run-browser-2#case-16-page-0-currentPending","run-browser-2#case-16-page-0-previousDocumentPending","run-browser-2#case-16-page-1-pageClosed","run-browser-2#case-16-page-1-routeCleanup","run-browser-2#case-16-page-1-observerDisposal","run-browser-2#case-16-page-1-currentPending","run-browser-2#case-16-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6256ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-017-11-0","app-source-current#CASE-017-11-1","run-browser-2#case-16-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L286"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-017-account-deletion-round-trip/regression.spec.mjs#L25"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-017-15-0","app-source-current#CASE-017-15-1","app-source-current#CASE-017-15-2","app-source-current#CASE-017-15-3","run-browser-2#case-16-diagnostic-count","run-browser-2#case-16-diagnostic-revision","run-browser-2#case-16-diagnostic-runId","run-browser-2#case-16-diagnostic-attempt","run-browser-2#case-16-diagnostic-project","run-browser-2#case-16-diagnostic-locale","run-browser-2#case-16-diagnostic-timezone","run-browser-2#case-16-diagnostic-startedAt","run-browser-2#case-16-diagnostic-finishedAt","run-browser-2#case-16-diagnostic-cleanupStage","run-browser-2#case-16-diagnostic-status","run-browser-2#case-16-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-018","title":"UGC report and block round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L16","checks":{"1":{"status":"P","reason":"정적: 팔로우한 사용자의 포스트를 신고하면 신고자 피드에서 즉시 사라지고(D3), 차단하면 양방향 팔로우가 해제되며 재부팅 후에도 서버 필터가 그 사용자의 콘텐츠를 계속 걸러야 한다(D1). 관리자는 신고 큐에서 접수 건을 확인해 콘텐츠를 원본 불변으로 내리고(D4) 사용자를 정지·해제할 수 있어야 하며(D5), 금칙어 댓글은 서버가 거부해야 한다(D6). 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L84"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 실제 friend 두포스트·양방향follow를 준비해 신고1건의 target/reason/status, follow0, 원본immutable·takedown1 및 명시적 suspension/profanity거부 결과를 기대한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L167","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L229","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L236","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L267","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L291"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"UGC report and block round trip: 실제 완료한 필수 상황·목표 checkpoint는 feed-baseline, report-immediate-hide, block-round-trip, admin-moderation, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 차단은 실제 준비된 양방향 follow를 모두 제거해야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L63"],"evidenceRefs":["app-source-current#CASE-018-6-0","app-source-current#CASE-018-6-1","app-source-current#CASE-018-6-2","app-source-current#CASE-018-6-3","run-browser-2#case-17-goal-checkpoints","run-browser-2#case-17-checkpoints","run-browser-2#case-17-quality-errors","run-browser-2#case-17-diagnostic-errors","run-browser-2#case-17-missing-signals","run-browser-2#case-17-unexpected-browser-errors","run-browser-2#case-17-complete-goals","run-browser-2#case-17-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 신고자의포스트숨김·다른포스트잔존, 차단양방향follow0와reload필터, 관리자접수/원본보존·정지/해제·금칙/정상댓글.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L120","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L152","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L168","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L200","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L229","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L236","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L256","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L291","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L299"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"feed-baseline, report-immediate-hide, block-round-trip, admin-moderation, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/case.json#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L305","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-018-8-0","app-source-current#CASE-018-8-1","app-source-current#CASE-018-8-2","app-source-current#CASE-018-8-3","run-browser-2#case-17-checkpoints","run-browser-2#case-17-quality-errors","run-browser-2#case-17-diagnostic-errors","run-browser-2#case-17-missing-signals","run-browser-2#case-17-unexpected-browser-errors","run-browser-2#case-17-complete-goals","run-browser-2#case-17-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 차단은 실제 준비된 양방향 follow를 모두 제거해야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-018-block-leaves-reverse-follow'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-018-9-0","app-source-current#CASE-018-9-1","app-source-current#CASE-018-9-2","app-source-current#CASE-018-9-3","run-browser-2#case-17-control-0-normal-value","run-browser-2#case-17-control-0-normal","run-browser-2#case-17-control-0-negative-value","run-browser-2#case-17-control-0-negative","run-browser-2#case-17-control-0-restored-value","run-browser-2#case-17-control-0-restored","run-browser-2#case-17-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 4개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L305","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-018-10-0","app-source-current#CASE-018-10-1","app-source-current#CASE-018-10-2","app-source-current#CASE-018-10-3","run-browser-2#case-17-rpc-observers","run-browser-2#case-17-cleanup-completed","run-browser-2#case-17-cleanup-resources","run-browser-2#case-17-listener-owners","run-browser-2#case-17-page-0-pageClosed","run-browser-2#case-17-page-0-routeCleanup","run-browser-2#case-17-page-0-observerDisposal","run-browser-2#case-17-page-0-currentPending","run-browser-2#case-17-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 4181ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-018-11-0","app-source-current#CASE-018-11-1","run-browser-2#case-17-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L305"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-018-ugc-report-block-round-trip/regression.spec.mjs#L14"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-018-15-0","app-source-current#CASE-018-15-1","app-source-current#CASE-018-15-2","app-source-current#CASE-018-15-3","run-browser-2#case-17-diagnostic-count","run-browser-2#case-17-diagnostic-revision","run-browser-2#case-17-diagnostic-runId","run-browser-2#case-17-diagnostic-attempt","run-browser-2#case-17-diagnostic-project","run-browser-2#case-17-diagnostic-locale","run-browser-2#case-17-diagnostic-timezone","run-browser-2#case-17-diagnostic-startedAt","run-browser-2#case-17-diagnostic-finishedAt","run-browser-2#case-17-diagnostic-cleanupStage","run-browser-2#case-17-diagnostic-status","run-browser-2#case-17-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-019","title":"Group board percent round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L34","checks":{"1":{"status":"P","reason":"정적: 화이트보드에 %로 입력한 세트는 %(원본)로 표시·저장·수정 재진입까지 유지되고(D3), kg 세트 상태에서 % 탭 전환만 해도 환산 %가 실체화되며(D3 후속), 셸 시작 바로 시작한 실제 운동 진행은 시작하는 사람 자신의 1RM으로 환산한 kg로 프리필돼야 한다(이슈 #1150 — 작성자의 환산 kg가 아니라, 작성자가 켠 5kg 반올림은 함께 적용). 스냅샷에는 load_pct(원본 %)와 load(작성자 환산 kg)가 병존해야 한다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L43"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L203","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 실제 1RM200에 70%=140, 다른 작성자73%와5kg반올림은 사용자200의145kg라는 독립 상수를 UI/DB에서 기대한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L112","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L220"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Group board percent round trip: 실제 완료한 필수 상황·목표 checkpoint는 provisioning, board-percent-compose, snapshot-and-reload, reentry, member-own-1rm-prefill, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 회원 자신의1RM200·처방73%·5kg 반올림으로145kg를 prefill하며 작성자999kg를 가져오면 안 된다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L128"],"evidenceRefs":["app-source-current#CASE-019-6-0","app-source-current#CASE-019-6-1","app-source-current#CASE-019-6-2","app-source-current#CASE-019-6-3","run-browser-2#case-18-goal-checkpoints","run-browser-2#case-18-checkpoints","run-browser-2#case-18-quality-errors","run-browser-2#case-18-diagnostic-errors","run-browser-2#case-18-missing-signals","run-browser-2#case-18-unexpected-browser-errors","run-browser-2#case-18-complete-goals","run-browser-2#case-18-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: kg→% 전환원본값, %표시·DBload_pct/load병존·edit/reload, coach의999kg가 아닌회원145kg프리필.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L112","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L203","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L220","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L222"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"provisioning, board-percent-compose, snapshot-and-reload, reentry, member-own-1rm-prefill, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/case.json#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L238","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-019-8-0","app-source-current#CASE-019-8-1","app-source-current#CASE-019-8-2","app-source-current#CASE-019-8-3","run-browser-2#case-18-checkpoints","run-browser-2#case-18-quality-errors","run-browser-2#case-18-diagnostic-errors","run-browser-2#case-18-missing-signals","run-browser-2#case-18-unexpected-browser-errors","run-browser-2#case-18-complete-goals","run-browser-2#case-18-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 회원 자신의1RM200·처방73%·5kg 반올림으로145kg를 prefill하며 작성자999kg를 가져오면 안 된다. 실제 DOM에 대응하는 대표 control 'case-019-coach-kg-leaks-into-member-prefill'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-019-9-0","app-source-current#CASE-019-9-1","app-source-current#CASE-019-9-2","app-source-current#CASE-019-9-3","run-browser-2#case-18-control-0-normal-value","run-browser-2#case-18-control-0-normal","run-browser-2#case-18-control-0-negative-value","run-browser-2#case-18-control-0-negative","run-browser-2#case-18-control-0-restored-value","run-browser-2#case-18-control-0-restored","run-browser-2#case-18-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L238","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-019-10-0","app-source-current#CASE-019-10-1","app-source-current#CASE-019-10-2","app-source-current#CASE-019-10-3","run-browser-2#case-18-rpc-observers","run-browser-2#case-18-cleanup-completed","run-browser-2#case-18-cleanup-resources","run-browser-2#case-18-listener-owners","run-browser-2#case-18-page-0-pageClosed","run-browser-2#case-18-page-0-routeCleanup","run-browser-2#case-18-page-0-observerDisposal","run-browser-2#case-18-page-0-currentPending","run-browser-2#case-18-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8421ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-019-11-0","app-source-current#CASE-019-11-1","run-browser-2#case-18-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L238"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-019-group-board-percent-round-trip/regression.spec.mjs#L32"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-019-15-0","app-source-current#CASE-019-15-1","app-source-current#CASE-019-15-2","app-source-current#CASE-019-15-3","run-browser-2#case-18-diagnostic-count","run-browser-2#case-18-diagnostic-revision","run-browser-2#case-18-diagnostic-runId","run-browser-2#case-18-diagnostic-attempt","run-browser-2#case-18-diagnostic-project","run-browser-2#case-18-diagnostic-locale","run-browser-2#case-18-diagnostic-timezone","run-browser-2#case-18-diagnostic-startedAt","run-browser-2#case-18-diagnostic-finishedAt","run-browser-2#case-18-diagnostic-cleanupStage","run-browser-2#case-18-diagnostic-status","run-browser-2#case-18-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-020","title":"Group board composite round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L32","checks":{"1":{"status":"P","reason":"정적: 복합종목 빌더는 구성 2개 미만에서는 추가를 잠그고, 5개를 채우면 추가를 허용하되 여섯 번째 구성 슬롯을 만들 수 없어야 한다. 이 CASE의 저장·표시·수정 재진입·세션 프리필 왕복은 두 구성 종목으로 검증한다. 화이트보드에 올린 두 구성 종목은 구성 종목 배열(composite)과 세트의 동작별 값 묶음(parts)까지 저장·표시·수정 재진입·세션 프리필 전 층에서 유지돼야 한다. 스냅샷에는 parts(동작별)와 reps(합계)가 병존하고, 보드 세트 축약은 합계가 아니라 \"10+10\"으로 그려지며, 시작 바 프리필은 복합 카드와 동작별 반복을 그대로 실은 라이브 세션을 연다. 현재 명세와 실제 검사 계층을 대조했다. 실행 합격 판정은 별도 U 항목에 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L135","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L204","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 서로다른2종목과 parts=[10,10], reps합계20, load20을 명시해 DB/보드/수정편집/시작프리필의 동일값을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L145","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L161","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L163","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L205","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L226"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Group board composite round trip: 실제 완료한 필수 상황·목표 checkpoint는 provisioning, board-composite-compose, snapshot-and-reload, reentry-and-prefill, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 복합2개 구성과 동작별 parts의10+10을 보존해야 하며 합계 reps20만으로 대체할 수 없다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L135"],"evidenceRefs":["app-source-current#CASE-020-6-0","app-source-current#CASE-020-6-1","app-source-current#CASE-020-6-2","app-source-current#CASE-020-6-3","run-browser-2#case-19-goal-checkpoints","run-browser-2#case-19-checkpoints","run-browser-2#case-19-quality-errors","run-browser-2#case-19-diagnostic-errors","run-browser-2#case-19-missing-signals","run-browser-2#case-19-unexpected-browser-errors","run-browser-2#case-19-complete-goals","run-browser-2#case-19-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 보강 확인: 빌더 0/1개 상태에서 잠김, 2개 허용, 각 새 빈 슬롯 잠김, 5개 채움/여섯 슬롯 추가 부재를 단언한다. 다시 2개로 돌아와 원래 두 구성 저장·parts·reload·prefill을 보존한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L126","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L170"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"provisioning, board-composite-compose, snapshot-and-reload, reentry-and-prefill, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/case.json#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-020-8-0","app-source-current#CASE-020-8-1","app-source-current#CASE-020-8-2","app-source-current#CASE-020-8-3","run-browser-2#case-19-checkpoints","run-browser-2#case-19-quality-errors","run-browser-2#case-19-diagnostic-errors","run-browser-2#case-19-missing-signals","run-browser-2#case-19-unexpected-browser-errors","run-browser-2#case-19-complete-goals","run-browser-2#case-19-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 복합2개 구성과 동작별 parts의10+10을 보존해야 하며 합계 reps20만으로 대체할 수 없다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-020-composite-loses-second-movement-values'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-020-9-0","app-source-current#CASE-020-9-1","app-source-current#CASE-020-9-2","app-source-current#CASE-020-9-3","run-browser-2#case-19-control-0-normal-value","run-browser-2#case-19-control-0-normal","run-browser-2#case-19-control-0-negative-value","run-browser-2#case-19-control-0-negative","run-browser-2#case-19-control-0-restored-value","run-browser-2#case-19-control-0-restored","run-browser-2#case-19-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-020-10-0","app-source-current#CASE-020-10-1","app-source-current#CASE-020-10-2","app-source-current#CASE-020-10-3","run-browser-2#case-19-rpc-observers","run-browser-2#case-19-cleanup-completed","run-browser-2#case-19-cleanup-resources","run-browser-2#case-19-listener-owners","run-browser-2#case-19-page-0-pageClosed","run-browser-2#case-19-page-0-routeCleanup","run-browser-2#case-19-page-0-observerDisposal","run-browser-2#case-19-page-0-currentPending","run-browser-2#case-19-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6583ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-020-11-0","app-source-current#CASE-020-11-1","run-browser-2#case-19-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-020-group-board-composite-round-trip/regression.spec.mjs#L30"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-020-15-0","app-source-current#CASE-020-15-1","app-source-current#CASE-020-15-2","app-source-current#CASE-020-15-3","run-browser-2#case-19-diagnostic-count","run-browser-2#case-19-diagnostic-revision","run-browser-2#case-19-diagnostic-runId","run-browser-2#case-19-diagnostic-attempt","run-browser-2#case-19-diagnostic-project","run-browser-2#case-19-diagnostic-locale","run-browser-2#case-19-diagnostic-timezone","run-browser-2#case-19-diagnostic-startedAt","run-browser-2#case-19-diagnostic-finishedAt","run-browser-2#case-19-diagnostic-cleanupStage","run-browser-2#case-19-diagnostic-status","run-browser-2#case-19-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-021","title":"Live composite load gate round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L13","checks":{"1":{"status":"P","reason":"정적: 라이브 복합종목 세트는 동작별 반복이 차 있어도 무게가 명시 입력(맨몸은 0)되기 전에는 '세트 설정 완료'가 잠기고, 편집을 통과한 세트는 알럿 없이 완료·저장까지 관통한다. 유효한 세트에 '세트 실패'를 잘못 눌러도 세트를 되돌려 다시 완료하면 실패 흔적이 남지 않으며, 저장된 두 동작 행은 모두 load 20·reps 10·set_result completed로 남는다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L48"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 빈중량은disabled, 명시0은enabled, 지운뒤disabled,20은enabled 및 저장두행 각각20×10/completed를 독립 상수로 기대한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L165","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L168"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Live composite load gate round trip: 실제 완료한 필수 상황·목표 checkpoint는 composite-editor-load-gate, fail-tap-redo-clean, save-and-reload, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 복합 동작별 reps가 있어도 중량이 빈 값이면 저장이 잠겨야 하며 명시0은 허용한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L98"],"evidenceRefs":["app-source-current#CASE-021-6-0","app-source-current#CASE-021-6-1","app-source-current#CASE-021-6-2","app-source-current#CASE-021-6-3","run-browser-2#case-20-goal-checkpoints","run-browser-2#case-20-checkpoints","run-browser-2#case-20-quality-errors","run-browser-2#case-20-diagnostic-errors","run-browser-2#case-20-missing-signals","run-browser-2#case-20-unexpected-browser-errors","run-browser-2#case-20-complete-goals","run-browser-2#case-20-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: empty와0구별, 두동작입력, 잘못된실패→되돌림→완료로실패표식제거, 저장완료두행·reload.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L165","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L181"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"composite-editor-load-gate, fail-tap-redo-clean, save-and-reload, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/case.json#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-021-8-0","app-source-current#CASE-021-8-1","app-source-current#CASE-021-8-2","app-source-current#CASE-021-8-3","run-browser-2#case-20-checkpoints","run-browser-2#case-20-quality-errors","run-browser-2#case-20-diagnostic-errors","run-browser-2#case-20-missing-signals","run-browser-2#case-20-unexpected-browser-errors","run-browser-2#case-20-complete-goals","run-browser-2#case-20-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 복합 동작별 reps가 있어도 중량이 빈 값이면 저장이 잠겨야 하며 명시0은 허용한다. 실제 DOM에 대응하는 대표 control 'case-021-blank-composite-load-gate-opens'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-021-9-0","app-source-current#CASE-021-9-1","app-source-current#CASE-021-9-2","app-source-current#CASE-021-9-3","run-browser-2#case-20-control-0-normal-value","run-browser-2#case-20-control-0-normal","run-browser-2#case-20-control-0-negative-value","run-browser-2#case-20-control-0-negative","run-browser-2#case-20-control-0-restored-value","run-browser-2#case-20-control-0-restored","run-browser-2#case-20-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-021-10-0","app-source-current#CASE-021-10-1","app-source-current#CASE-021-10-2","app-source-current#CASE-021-10-3","run-browser-2#case-20-rpc-observers","run-browser-2#case-20-cleanup-completed","run-browser-2#case-20-cleanup-resources","run-browser-2#case-20-listener-owners","run-browser-2#case-20-page-0-pageClosed","run-browser-2#case-20-page-0-routeCleanup","run-browser-2#case-20-page-0-observerDisposal","run-browser-2#case-20-page-0-currentPending","run-browser-2#case-20-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6443ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-021-11-0","app-source-current#CASE-021-11-1","run-browser-2#case-20-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L187"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-021-live-composite-load-gate-round-trip/regression.spec.mjs#L11"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-021-15-0","app-source-current#CASE-021-15-1","app-source-current#CASE-021-15-2","app-source-current#CASE-021-15-3","run-browser-2#case-20-diagnostic-count","run-browser-2#case-20-diagnostic-revision","run-browser-2#case-20-diagnostic-runId","run-browser-2#case-20-diagnostic-attempt","run-browser-2#case-20-diagnostic-project","run-browser-2#case-20-diagnostic-locale","run-browser-2#case-20-diagnostic-timezone","run-browser-2#case-20-diagnostic-startedAt","run-browser-2#case-20-diagnostic-finishedAt","run-browser-2#case-20-diagnostic-cleanupStage","run-browser-2#case-20-diagnostic-status","run-browser-2#case-20-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-022","title":"Live mixed composite round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L12","checks":{"1":{"status":"P","reason":"정적: 이종 복합(무게×횟수 동작 + 시간 동작)은 편집기가 동작별로 자기 기록 원자만 묻고(공유 무게칸 없음), 전 동작의 논리식이 충족돼야 저장이 열리며, 완료 저장은 동작별 행에 자기 원자만 기입한다 — 무게 동작 행은 60kg·5회, 시간 동작 행은 30초에 횟수 없음. 리로드 후 세션 상세까지 왕복이 유지된다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/case.json#L25","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L44"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 강도동작60×5와시간동작30초의독립상수, 서로의비관련atom은null을 DB원본에 대조한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L132","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L135"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Live mixed composite round trip: 실제 완료한 필수 상황·목표 checkpoint는 mixed-editor-per-movement-atoms, movement-rows-own-atoms, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 시간 전용 hold 행은30초·reps null·load null이어야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L86"],"evidenceRefs":["app-source-current#CASE-022-6-0","app-source-current#CASE-022-6-1","app-source-current#CASE-022-6-2","app-source-current#CASE-022-6-3","run-browser-2#case-21-goal-checkpoints","run-browser-2#case-21-checkpoints","run-browser-2#case-21-quality-errors","run-browser-2#case-21-diagnostic-errors","run-browser-2#case-21-missing-signals","run-browser-2#case-21-unexpected-browser-errors","run-browser-2#case-21-complete-goals","run-browser-2#case-21-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 보강 확인: shared load input 부재와 개별 입력3개를 확인한다. strength60×5와 duration30초가 다른 원자에 섞이지 않으며 reload 상세60kg와30초를 모두 단언한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L162"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"mixed-editor-per-movement-atoms, movement-rows-own-atoms, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/case.json#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L168","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-022-8-0","app-source-current#CASE-022-8-1","app-source-current#CASE-022-8-2","app-source-current#CASE-022-8-3","run-browser-2#case-21-checkpoints","run-browser-2#case-21-quality-errors","run-browser-2#case-21-diagnostic-errors","run-browser-2#case-21-missing-signals","run-browser-2#case-21-unexpected-browser-errors","run-browser-2#case-21-complete-goals","run-browser-2#case-21-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 시간 전용 hold 행은30초·reps null·load null이어야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-022-strength-load-contaminates-duration-row'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/case.json#L25","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-022-9-0","app-source-current#CASE-022-9-1","app-source-current#CASE-022-9-2","app-source-current#CASE-022-9-3","run-browser-2#case-21-control-0-normal-value","run-browser-2#case-21-control-0-normal","run-browser-2#case-21-control-0-negative-value","run-browser-2#case-21-control-0-negative","run-browser-2#case-21-control-0-restored-value","run-browser-2#case-21-control-0-restored","run-browser-2#case-21-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L168","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-022-10-0","app-source-current#CASE-022-10-1","app-source-current#CASE-022-10-2","app-source-current#CASE-022-10-3","run-browser-2#case-21-rpc-observers","run-browser-2#case-21-cleanup-completed","run-browser-2#case-21-cleanup-resources","run-browser-2#case-21-listener-owners","run-browser-2#case-21-page-0-pageClosed","run-browser-2#case-21-page-0-routeCleanup","run-browser-2#case-21-page-0-observerDisposal","run-browser-2#case-21-page-0-currentPending","run-browser-2#case-21-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6688ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-022-11-0","app-source-current#CASE-022-11-1","run-browser-2#case-21-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L168"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-022-live-mixed-composite-round-trip/regression.spec.mjs#L10"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-022-15-0","app-source-current#CASE-022-15-1","app-source-current#CASE-022-15-2","app-source-current#CASE-022-15-3","run-browser-2#case-21-diagnostic-count","run-browser-2#case-21-diagnostic-revision","run-browser-2#case-21-diagnostic-runId","run-browser-2#case-21-diagnostic-attempt","run-browser-2#case-21-diagnostic-project","run-browser-2#case-21-diagnostic-locale","run-browser-2#case-21-diagnostic-timezone","run-browser-2#case-21-diagnostic-startedAt","run-browser-2#case-21-diagnostic-finishedAt","run-browser-2#case-21-diagnostic-cleanupStage","run-browser-2#case-21-diagnostic-status","run-browser-2#case-21-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-023","title":"Completed session follow-up edit write source","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L27","checks":{"1":{"status":"P","reason":"정적: 라이브 운동을 마치면 완료 화면에서 기록이 즉시 저장되고, 그 화면에서 메모를 고쳐 '메인으로'를 눌러도, 일지에서 그 기록을 열어 세트 무게를 고쳐 저장하고 곧바로 한 번 더 고쳐 저장해도 사용자에게 보이는 오류(배너·토스트·알럿)가 한 번도 뜨지 않는다. 저장마다 서버 개정번호가 1→2→3→4로 오르고, 종목 줄·세트 줄 id는 세 번의 수정 내내 그대로이며, 마지막 무게 85kg·60kg이 리로드 뒤 상세에 그대로 보인다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/case.json#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/case.json#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L111"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L178","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L211","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 초기세트상수와note,80/85kg후속입력 및revision1→2→3→4를 기대하고 검증된초기child id를매저장비교한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L178","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L201","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L211","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L213"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Completed session follow-up edit write source: 실제 완료한 필수 상황·목표 checkpoint는 auto-save-and-note-follow-up, consecutive-set-edits, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 연속 수정 뒤 revision4여도 처음 만든 세트/종목 행 id를 유지해야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L147"],"evidenceRefs":["app-source-current#CASE-023-6-0","app-source-current#CASE-023-6-1","app-source-current#CASE-023-6-2","app-source-current#CASE-023-6-3","run-browser-2#case-22-goal-checkpoints","run-browser-2#case-22-checkpoints","run-browser-2#case-22-quality-errors","run-browser-2#case-22-diagnostic-errors","run-browser-2#case-22-missing-signals","run-browser-2#case-22-unexpected-browser-errors","run-browser-2#case-22-complete-goals","run-browser-2#case-22-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 자동저장·note-only·연속2회세트수정, 기존child id·미변경세트·메모유지,오류0와reload두행각값.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L178","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L200","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L212","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L215","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L240","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L243"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"auto-save-and-note-follow-up, consecutive-set-edits, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/case.json#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L250","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-023-8-0","app-source-current#CASE-023-8-1","app-source-current#CASE-023-8-2","app-source-current#CASE-023-8-3","run-browser-2#case-22-checkpoints","run-browser-2#case-22-quality-errors","run-browser-2#case-22-diagnostic-errors","run-browser-2#case-22-missing-signals","run-browser-2#case-22-unexpected-browser-errors","run-browser-2#case-22-complete-goals","run-browser-2#case-22-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 연속 수정 뒤 revision4여도 처음 만든 세트/종목 행 id를 유지해야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-023-follow-up-recreates-child-row-identity'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/case.json#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-023-9-0","app-source-current#CASE-023-9-1","app-source-current#CASE-023-9-2","app-source-current#CASE-023-9-3","run-browser-2#case-22-control-0-normal-value","run-browser-2#case-22-control-0-normal","run-browser-2#case-22-control-0-negative-value","run-browser-2#case-22-control-0-negative","run-browser-2#case-22-control-0-restored-value","run-browser-2#case-22-control-0-restored","run-browser-2#case-22-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L250","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-023-10-0","app-source-current#CASE-023-10-1","app-source-current#CASE-023-10-2","app-source-current#CASE-023-10-3","run-browser-2#case-22-rpc-observers","run-browser-2#case-22-cleanup-completed","run-browser-2#case-22-cleanup-resources","run-browser-2#case-22-listener-owners","run-browser-2#case-22-page-0-pageClosed","run-browser-2#case-22-page-0-routeCleanup","run-browser-2#case-22-page-0-observerDisposal","run-browser-2#case-22-page-0-currentPending","run-browser-2#case-22-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 11049ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-023-11-0","app-source-current#CASE-023-11-1","run-browser-2#case-22-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L250"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-023-completed-session-follow-up-edit-write-source/regression.spec.mjs#L25"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-023-15-0","app-source-current#CASE-023-15-1","app-source-current#CASE-023-15-2","app-source-current#CASE-023-15-3","run-browser-2#case-22-diagnostic-count","run-browser-2#case-22-diagnostic-revision","run-browser-2#case-22-diagnostic-runId","run-browser-2#case-22-diagnostic-attempt","run-browser-2#case-22-diagnostic-project","run-browser-2#case-22-diagnostic-locale","run-browser-2#case-22-diagnostic-timezone","run-browser-2#case-22-diagnostic-startedAt","run-browser-2#case-22-diagnostic-finishedAt","run-browser-2#case-22-diagnostic-cleanupStage","run-browser-2#case-22-diagnostic-status","run-browser-2#case-22-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-024","title":"Completed record two-way edit round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L31","checks":{"1":{"status":"P","reason":"정적: 완료된 기록은 (a) 수정 편집기로 세트 값을 고쳐 저장해도, (b) 종목을 전혀 건드리지 않고 시간만 또는 메모만 고쳐 저장해도 사용자에게 보이는 오류(배너·토스트·알럿)가 한 번도 뜨지 않는다. 세 저장 모두 서버 개정번호가 1→2→3→4로 오르고 종목 줄·세트 줄 id는 처음 만든 그대로이며, 리로드 뒤 상세에 80kg·10:00~11:00·새 메모가 그대로 보인다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/case.json#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L52"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L143","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L172","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L210","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 초기60kg등상수에서첫load80,시간10:00~11:00,새note를입력하고revision2/3/4와기존child id를검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L210","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L211"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Completed record two-way edit round trip: 실제 완료한 필수 상황·목표 checkpoint는 provisioning, set-value-edit, time-and-note-only-edits, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 세트를 건드리지 않은 note-only 저장도 새 note와 revision4를 유지해야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L222","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L143","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L172"],"evidenceRefs":["app-source-current#CASE-024-6-0","app-source-current#CASE-024-6-1","app-source-current#CASE-024-6-2","app-source-current#CASE-024-6-3","run-browser-2#case-23-goal-checkpoints","run-browser-2#case-23-checkpoints","run-browser-2#case-23-quality-errors","run-browser-2#case-23-diagnostic-errors","run-browser-2#case-23-missing-signals","run-browser-2#case-23-unexpected-browser-errors","run-browser-2#case-23-complete-goals","run-browser-2#case-23-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 세트수정/시간-only/note-only 세갈래에서 id·비관련값·완료상태유지,에러0와reload수정중량시간note.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L193","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L242","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L243","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L244"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"provisioning, set-value-edit, time-and-note-only-edits, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/case.json#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L252","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-024-8-0","app-source-current#CASE-024-8-1","app-source-current#CASE-024-8-2","app-source-current#CASE-024-8-3","run-browser-2#case-23-checkpoints","run-browser-2#case-23-quality-errors","run-browser-2#case-23-diagnostic-errors","run-browser-2#case-23-missing-signals","run-browser-2#case-23-unexpected-browser-errors","run-browser-2#case-23-complete-goals","run-browser-2#case-23-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 세트를 건드리지 않은 note-only 저장도 새 note와 revision4를 유지해야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-024-note-only-save-keeps-old-metadata'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L222","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/case.json#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-024-9-0","app-source-current#CASE-024-9-1","app-source-current#CASE-024-9-2","app-source-current#CASE-024-9-3","run-browser-2#case-23-control-0-normal-value","run-browser-2#case-23-control-0-normal","run-browser-2#case-23-control-0-negative-value","run-browser-2#case-23-control-0-negative","run-browser-2#case-23-control-0-restored-value","run-browser-2#case-23-control-0-restored","run-browser-2#case-23-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L222","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L252","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-024-10-0","app-source-current#CASE-024-10-1","app-source-current#CASE-024-10-2","app-source-current#CASE-024-10-3","run-browser-2#case-23-rpc-observers","run-browser-2#case-23-cleanup-completed","run-browser-2#case-23-cleanup-resources","run-browser-2#case-23-listener-owners","run-browser-2#case-23-page-0-pageClosed","run-browser-2#case-23-page-0-routeCleanup","run-browser-2#case-23-page-0-observerDisposal","run-browser-2#case-23-page-0-currentPending","run-browser-2#case-23-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8158ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-024-11-0","app-source-current#CASE-024-11-1","run-browser-2#case-23-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L252"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-024-completed-record-two-way-edit-round-trip/regression.spec.mjs#L29"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-024-15-0","app-source-current#CASE-024-15-1","app-source-current#CASE-024-15-2","app-source-current#CASE-024-15-3","run-browser-2#case-23-diagnostic-count","run-browser-2#case-23-diagnostic-revision","run-browser-2#case-23-diagnostic-runId","run-browser-2#case-23-diagnostic-attempt","run-browser-2#case-23-diagnostic-project","run-browser-2#case-23-diagnostic-locale","run-browser-2#case-23-diagnostic-timezone","run-browser-2#case-23-diagnostic-startedAt","run-browser-2#case-23-diagnostic-finishedAt","run-browser-2#case-23-diagnostic-cleanupStage","run-browser-2#case-23-diagnostic-status","run-browser-2#case-23-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-025","title":"Plan to live session completion round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L80","checks":{"1":{"status":"P","reason":"정적: 오늘 계획을 모바일 계획 편집기로 저장하고, 새로 연 앱의 시작 화면에서 그 계획을 골라 운동을 시작하면 세트가 계획대로 프리필된다. 운동을 마쳐 완료 화면에 들어오면 기록이 즉시 저장되고 계획은 completed로 닫히며, 완료 화면에서 메모를 고쳐 '메인으로'를 눌러도 오류가 뜨지 않는다. 완료 기록은 계획 제목·종목·50kg×5 세트를 그대로 싣고, 리로드 뒤 상세에도 그대로 보인다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L134"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L209","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L227","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L255","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 모바일계획50×5상수와동일plan id,planned→completed,revision1→2→3,note와child불변을직접확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L184","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L229","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L232","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L255","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L259","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L267"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Plan to live session completion round trip: 실제 완료한 필수 상황·목표 checkpoint는 plan-save, start-from-plan-and-complete, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 계획으로 시작한 운동이 완료 저장되면 같은 plan id가completed로 닫혀야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L276","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L209"],"evidenceRefs":["app-source-current#CASE-025-6-0","app-source-current#CASE-025-6-1","app-source-current#CASE-025-6-2","app-source-current#CASE-025-6-3","run-browser-2#case-24-goal-checkpoints","run-browser-2#case-24-checkpoints","run-browser-2#case-24-quality-errors","run-browser-2#case-24-diagnostic-errors","run-browser-2#case-24-missing-signals","run-browser-2#case-24-unexpected-browser-errors","run-browser-2#case-24-complete-goals","run-browser-2#case-24-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 계획실제UI생성·새앱선택·프리필·완료즉시저장·notefollowup,같은plan닫힘·reload완료행.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L229","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L257","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L259","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L267","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L295","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L303"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"plan-save, start-from-plan-and-complete, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/case.json#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L312","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-025-8-0","app-source-current#CASE-025-8-1","app-source-current#CASE-025-8-2","app-source-current#CASE-025-8-3","run-browser-2#case-24-checkpoints","run-browser-2#case-24-quality-errors","run-browser-2#case-24-diagnostic-errors","run-browser-2#case-24-missing-signals","run-browser-2#case-24-unexpected-browser-errors","run-browser-2#case-24-complete-goals","run-browser-2#case-24-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 계획으로 시작한 운동이 완료 저장되면 같은 plan id가completed로 닫혀야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-025-completed-workout-leaves-plan-open'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L276","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-025-9-0","app-source-current#CASE-025-9-1","app-source-current#CASE-025-9-2","app-source-current#CASE-025-9-3","run-browser-2#case-24-control-0-normal-value","run-browser-2#case-24-control-0-normal","run-browser-2#case-24-control-0-negative-value","run-browser-2#case-24-control-0-negative","run-browser-2#case-24-control-0-restored-value","run-browser-2#case-24-control-0-restored","run-browser-2#case-24-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L276","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L312","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-025-10-0","app-source-current#CASE-025-10-1","app-source-current#CASE-025-10-2","app-source-current#CASE-025-10-3","run-browser-2#case-24-rpc-observers","run-browser-2#case-24-cleanup-completed","run-browser-2#case-24-cleanup-resources","run-browser-2#case-24-listener-owners","run-browser-2#case-24-page-0-pageClosed","run-browser-2#case-24-page-0-routeCleanup","run-browser-2#case-24-page-0-observerDisposal","run-browser-2#case-24-page-0-currentPending","run-browser-2#case-24-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8187ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-025-11-0","app-source-current#CASE-025-11-1","run-browser-2#case-24-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L312"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-025-plan-to-live-session-completion-round-trip/regression.spec.mjs#L78"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-025-15-0","app-source-current#CASE-025-15-1","app-source-current#CASE-025-15-2","app-source-current#CASE-025-15-3","run-browser-2#case-24-diagnostic-count","run-browser-2#case-24-diagnostic-revision","run-browser-2#case-24-diagnostic-runId","run-browser-2#case-24-diagnostic-attempt","run-browser-2#case-24-diagnostic-project","run-browser-2#case-24-diagnostic-locale","run-browser-2#case-24-diagnostic-timezone","run-browser-2#case-24-diagnostic-startedAt","run-browser-2#case-24-diagnostic-finishedAt","run-browser-2#case-24-diagnostic-cleanupStage","run-browser-2#case-24-diagnostic-status","run-browser-2#case-24-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-026","title":"Group board workout follow-up edit round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L46","checks":{"1":{"status":"P","reason":"정적: 그룹 화이트보드에 올린 세트(60kg×5)로 운동을 시작하면 세트가 그대로 프리필되고, 운동을 마쳐 완료 화면에 들어오면 기록이 'group-board:' 출처(source_ref)로 즉시 저장된다. 완료 화면에서 메모를 고쳐 '메인으로'를 눌러도 오류가 뜨지 않고 개정번호가 1→2로 오르며, 종목 줄·세트 줄 id와 출처는 그대로다. 리로드 뒤 상세에 종목명과 60kg이 보인다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은http-response 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/case.json#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L64"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L158","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L224","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 보드60×5·group-board:출처와revision1→2,note입력상수,최초확인child id 보존을독립적으로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L158","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L197","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L199","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L227"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Group board workout follow-up edit round trip: 실제 완료한 필수 상황·목표 checkpoint는 provisioning, board-compose, board-workout-and-follow-up, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 그룹 보드 운동의 note-only 후속 저장은 원래 group-board source_ref와 행 id를 보존해야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L231","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L166"],"evidenceRefs":["app-source-current#CASE-026-6-0","app-source-current#CASE-026-6-1","app-source-current#CASE-026-6-2","app-source-current#CASE-026-6-3","run-browser-2#case-25-goal-checkpoints","run-browser-2#case-25-checkpoints","run-browser-2#case-25-quality-errors","run-browser-2#case-25-diagnostic-errors","run-browser-2#case-25-missing-signals","run-browser-2#case-25-unexpected-browser-errors","run-browser-2#case-25-complete-goals","run-browser-2#case-25-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 실제보드발행→프리필→즉시저장→note-only후속수정·원래탭복귀,동일출처/child id·reload.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L164","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L250"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"provisioning, board-compose, board-workout-and-follow-up, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/case.json#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L259","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-026-8-0","app-source-current#CASE-026-8-1","app-source-current#CASE-026-8-2","app-source-current#CASE-026-8-3","run-browser-2#case-25-checkpoints","run-browser-2#case-25-quality-errors","run-browser-2#case-25-diagnostic-errors","run-browser-2#case-25-missing-signals","run-browser-2#case-25-unexpected-browser-errors","run-browser-2#case-25-complete-goals","run-browser-2#case-25-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 그룹 보드 운동의 note-only 후속 저장은 원래 group-board source_ref와 행 id를 보존해야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-026-note-follow-up-loses-group-board-lineage'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L231","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/case.json#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-026-9-0","app-source-current#CASE-026-9-1","app-source-current#CASE-026-9-2","app-source-current#CASE-026-9-3","run-browser-2#case-25-control-0-normal-value","run-browser-2#case-25-control-0-normal","run-browser-2#case-25-control-0-negative-value","run-browser-2#case-25-control-0-negative","run-browser-2#case-25-control-0-restored-value","run-browser-2#case-25-control-0-restored","run-browser-2#case-25-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L231","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L259","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-026-10-0","app-source-current#CASE-026-10-1","app-source-current#CASE-026-10-2","app-source-current#CASE-026-10-3","run-browser-2#case-25-rpc-observers","run-browser-2#case-25-cleanup-completed","run-browser-2#case-25-cleanup-resources","run-browser-2#case-25-listener-owners","run-browser-2#case-25-page-0-pageClosed","run-browser-2#case-25-page-0-routeCleanup","run-browser-2#case-25-page-0-observerDisposal","run-browser-2#case-25-page-0-currentPending","run-browser-2#case-25-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 7873ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-026-11-0","app-source-current#CASE-026-11-1","run-browser-2#case-25-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L259"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-026-group-board-workout-follow-up-edit-round-trip/regression.spec.mjs#L44"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-026-15-0","app-source-current#CASE-026-15-1","app-source-current#CASE-026-15-2","app-source-current#CASE-026-15-3","run-browser-2#case-25-diagnostic-count","run-browser-2#case-25-diagnostic-revision","run-browser-2#case-25-diagnostic-runId","run-browser-2#case-25-diagnostic-attempt","run-browser-2#case-25-diagnostic-project","run-browser-2#case-25-diagnostic-locale","run-browser-2#case-25-diagnostic-timezone","run-browser-2#case-25-diagnostic-startedAt","run-browser-2#case-25-diagnostic-finishedAt","run-browser-2#case-25-diagnostic-cleanupStage","run-browser-2#case-25-diagnostic-status","run-browser-2#case-25-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-027","title":"Group board edit resave round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L45","checks":{"1":{"status":"P","reason":"정적: 그룹 화이트보드에 세트(60kg×5)를 올린 뒤 앱을 새로 열어 보드로 돌아와 연필로 다시 들어가면 저장된 세트가 드로어에 60으로 복원되고, 무게를 80으로 고쳐 다시 올리면 오류 없이 보드가 '80kg 5x1'로 바뀐다. 같은 그룹 계획 세션 행(session, status=planned)의 get_group_board_v1 조회 결과가 load 80으로 갱신되고 updated_at이 전진하며, 리로드 뒤에도 80kg이 보인다. 현재 명세와 실제 검사 계층을 대조했다. 실행 합격 판정은 별도 U 항목에 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/case.json#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L55"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 초기60×5를80×5로수정하고같은행id/group/owner,새updated_at,DBload80과reload80을기대한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L126","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L164","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L194"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Group board edit resave round trip: 실제 완료한 필수 상황·목표 checkpoint는 provisioning, board-compose, board-edit-resave, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 보드를 60에서 80으로 수정한 뒤 같은 보드 id의 스냅샷도 80×5여야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L148"],"evidenceRefs":["app-source-current#CASE-027-6-0","app-source-current#CASE-027-6-1","app-source-current#CASE-027-6-2","app-source-current#CASE-027-6-3","run-browser-2#case-26-goal-checkpoints","run-browser-2#case-26-checkpoints","run-browser-2#case-26-quality-errors","run-browser-2#case-26-diagnostic-errors","run-browser-2#case-26-missing-signals","run-browser-2#case-26-unexpected-browser-errors","run-browser-2#case-26-complete-goals","run-browser-2#case-26-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: reload뒤기존60복원,두번째저장뒤이전60표시금지·정확1개보드행/id/소유자보존·최종reload80.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L161","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L194"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"provisioning, board-compose, board-edit-resave, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/case.json#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L201","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-027-8-0","app-source-current#CASE-027-8-1","app-source-current#CASE-027-8-2","app-source-current#CASE-027-8-3","run-browser-2#case-26-checkpoints","run-browser-2#case-26-quality-errors","run-browser-2#case-26-diagnostic-errors","run-browser-2#case-26-missing-signals","run-browser-2#case-26-unexpected-browser-errors","run-browser-2#case-26-complete-goals","run-browser-2#case-26-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 보드를 60에서 80으로 수정한 뒤 같은 보드 id의 스냅샷도 80×5여야 한다. SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case-027-board-resave-retains-old-load'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/case.json#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-027-9-0","app-source-current#CASE-027-9-1","app-source-current#CASE-027-9-2","app-source-current#CASE-027-9-3","run-browser-2#case-26-control-0-normal-value","run-browser-2#case-26-control-0-normal","run-browser-2#case-26-control-0-negative-value","run-browser-2#case-26-control-0-negative","run-browser-2#case-26-control-0-restored-value","run-browser-2#case-26-control-0-restored","run-browser-2#case-26-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L201","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-027-10-0","app-source-current#CASE-027-10-1","app-source-current#CASE-027-10-2","app-source-current#CASE-027-10-3","run-browser-2#case-26-rpc-observers","run-browser-2#case-26-cleanup-completed","run-browser-2#case-26-cleanup-resources","run-browser-2#case-26-listener-owners","run-browser-2#case-26-page-0-pageClosed","run-browser-2#case-26-page-0-routeCleanup","run-browser-2#case-26-page-0-observerDisposal","run-browser-2#case-26-page-0-currentPending","run-browser-2#case-26-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6442ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-027-11-0","app-source-current#CASE-027-11-1","run-browser-2#case-26-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L201"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-027-group-board-edit-resave-round-trip/regression.spec.mjs#L43"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-027-15-0","app-source-current#CASE-027-15-1","app-source-current#CASE-027-15-2","app-source-current#CASE-027-15-3","run-browser-2#case-26-diagnostic-count","run-browser-2#case-26-diagnostic-revision","run-browser-2#case-26-diagnostic-runId","run-browser-2#case-26-diagnostic-attempt","run-browser-2#case-26-diagnostic-project","run-browser-2#case-26-diagnostic-locale","run-browser-2#case-26-diagnostic-timezone","run-browser-2#case-26-diagnostic-startedAt","run-browser-2#case-26-diagnostic-finishedAt","run-browser-2#case-26-diagnostic-cleanupStage","run-browser-2#case-26-diagnostic-status","run-browser-2#case-26-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-028","title":"Finish back one more set resave round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L26","checks":{"1":{"status":"P","reason":"정적: 라이브 운동을 종료하면 종료 확인 카드가 '저장 중 → 저장 완료'를 보여준 뒤 완료 화면이 뜨고(즉시 저장, 개정번호 1), 완료 화면의 '한 세트만 더할게요'로 기록 화면에 돌아가 세트를 하나 더 기록한 뒤 다시 종료해 '메인으로'를 누르면 세 번째 세트까지 포함한 수정 저장이 오류 없이 통과한다(개정번호 2). 새로 고침 뒤 상세에 세 세트가 모두 보인다(라이브 초안에서 나가는 재저장이라 줄 id는 새로 발급될 수 있고, 다음 수정은 저장된 기록의 상세에서 새 번호표로 열린다). 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은dom 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L137"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. 고정과거연도나이전CASE데이터를필수전제로쓰지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L137","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L221","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L234","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L235","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 60×5두행+추가70×5한행이라는정확입력상수와revision1→2를DB및reload세트별UI에기대한다. id교체허용정책과행개수보존을분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L224","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L227","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L245","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L248"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Finish back one more set resave round trip: 실제 완료한 필수 상황·목표 checkpoint는 auto-save-through-confirm-card, back-one-more-set-resave, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 한 세트 더 기록하고 재저장한 뒤 reload 상세에는 60×5 두 개와 70×5 한 개가 모두 보여야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L256","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L166"],"evidenceRefs":["app-source-current#CASE-028-6-0","app-source-current#CASE-028-6-1","app-source-current#CASE-028-6-2","app-source-current#CASE-028-6-3","run-browser-2#case-27-goal-checkpoints","run-browser-2#case-27-checkpoints","run-browser-2#case-27-quality-errors","run-browser-2#case-27-diagnostic-errors","run-browser-2#case-27-missing-signals","run-browser-2#case-27-unexpected-browser-errors","run-browser-2#case-27-complete-goals","run-browser-2#case-27-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 보강 확인: 실제 confirm 카드의 saving/aria-busy=true→saved/false 전이를 MutationObserver로 기록하고 완료 화면 뒤 배열을 단언한다. 별도 시간 고정 없이 기존 원본2세트+추가1세트/revision/reload 단언을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L116","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L130","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L255"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"auto-save-through-confirm-card, back-one-more-set-resave, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/case.json#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L283","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-028-8-0","app-source-current#CASE-028-8-1","app-source-current#CASE-028-8-2","app-source-current#CASE-028-8-3","run-browser-2#case-27-checkpoints","run-browser-2#case-27-quality-errors","run-browser-2#case-27-diagnostic-errors","run-browser-2#case-27-missing-signals","run-browser-2#case-27-unexpected-browser-errors","run-browser-2#case-27-complete-goals","run-browser-2#case-27-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 한 세트 더 기록하고 재저장한 뒤 reload 상세에는 60×5 두 개와 70×5 한 개가 모두 보여야 한다. 실제 DOM에 대응하는 대표 control 'case-028-resave-drops-original-two-sets-on-reentry'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L256","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-028-9-0","app-source-current#CASE-028-9-1","app-source-current#CASE-028-9-2","app-source-current#CASE-028-9-3","run-browser-2#case-27-control-0-normal-value","run-browser-2#case-27-control-0-normal","run-browser-2#case-27-control-0-negative-value","run-browser-2#case-27-control-0-negative","run-browser-2#case-27-control-0-restored-value","run-browser-2#case-27-control-0-restored","run-browser-2#case-27-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L256","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L283","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-028-10-0","app-source-current#CASE-028-10-1","app-source-current#CASE-028-10-2","app-source-current#CASE-028-10-3","run-browser-2#case-27-rpc-observers","run-browser-2#case-27-cleanup-completed","run-browser-2#case-27-cleanup-resources","run-browser-2#case-27-listener-owners","run-browser-2#case-27-page-0-pageClosed","run-browser-2#case-27-page-0-routeCleanup","run-browser-2#case-27-page-0-observerDisposal","run-browser-2#case-27-page-0-currentPending","run-browser-2#case-27-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8319ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-028-11-0","app-source-current#CASE-028-11-1","run-browser-2#case-27-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L283"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-028-finish-back-one-more-set-resave-round-trip/regression.spec.mjs#L24"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-028-15-0","app-source-current#CASE-028-15-1","app-source-current#CASE-028-15-2","app-source-current#CASE-028-15-3","run-browser-2#case-27-diagnostic-count","run-browser-2#case-27-diagnostic-revision","run-browser-2#case-27-diagnostic-runId","run-browser-2#case-27-diagnostic-attempt","run-browser-2#case-27-diagnostic-project","run-browser-2#case-27-diagnostic-locale","run-browser-2#case-27-diagnostic-timezone","run-browser-2#case-27-diagnostic-startedAt","run-browser-2#case-27-diagnostic-finishedAt","run-browser-2#case-27-diagnostic-cleanupStage","run-browser-2#case-27-diagnostic-status","run-browser-2#case-27-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-029","title":"Offline edit and delete queue flush round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L49","checks":{"1":{"status":"P","reason":"정적: 완료된 운동 기록을 고쳐 저장하거나 삭제할 때 서버에 닿지 못해도(HTTP 503) 앱은 막지 않는다. 수정은 누르는 순간 '수정하였습니다'와 함께 편집기가 닫히고 기기 대기열에 수정 행 1개로 남으며 일지에는 '동기화 후 반영'으로 보이고 서버 내용은 그대로다. 연결이 돌아오면 자동으로 올라가 서버 무게가 80kg으로 바뀌고 대기열은 비며 '대기 중이던 기록 변경을 동기화했어요' 안내가 뜬다. 삭제도 같은 방식으로 '삭제하였습니다'와 함께 일지에서 즉시 사라진 뒤 대기열 삭제 행 1개로 남았다가 연결 복귀 시 서버에서 지워지고, 새로고침해도 그 기록은 없고 대기열도 비어 있다. 기존 계획 수정도 첫 실패 뒤 제목·세트를 기기에 보관하고 편집기를 닫는다. 열린 앱에서 새로고침 없이 같은 요청을 다시 보내 같은 계획의 제목·80kg×5가 서버와 UI에 반영되며, 성공 뒤 재진입해도 유지된다. 실제정상경로는브라우저·인증API/직접DB단언에연결되고추가control은indexeddb 경계로선언된다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/case.json#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L212"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"2":{"status":"P","reason":"정적: CASE입력은자체fixture/명시상수로준비하며실행시각·SHA·locale·Seoul timezone·sessionDate를기록한다. 난수는주로소유id격리용이다. recovery clock은현재시각에서설치하고관측된재연결backoff만전진한다.200ms loop는상태재조회간격이며고정시간이끝났다는이유로준비완료라판정하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L267","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"3":{"status":"P","reason":"정적: caseContext는 매 CASE별 disposable Auth 계정과 runToken을 만들고 데이터·스토리지를 owner에 묶는다. 추가 actor도 본 CASE가 생성한다. 허용 runner는 lane별 port와 worker 1이며 CASE 간 실행 순서 의존을 확인하지 못했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L212","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"4":{"status":"P","reason":"정적: 아래구간에서응답·표시상태·DB revision/저장행을단언후다음행동을한다. 공통요청drain은관측중요청의종료만검사하며목표UI/DB준비를대신하지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L90","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L313","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L317","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L382","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L495","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L633","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L662","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L156"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"5":{"status":"P","reason":"정적: 초기60×5두행과80kg수정입력,정확한pending1개/hash/body/id·서버revision증가,삭제후행0을기대하며gate전서버불변을직접읽는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L267","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L274","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L323","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L337","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L347","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L369","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L403","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L451","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L481","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L511","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L645","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L676"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"6":{"status":"P","reason":"Offline edit and delete queue flush round trip: 실제 완료한 필수 상황·목표 checkpoint는 online-baseline, edit-queued-on-device, edit-flushed-after-recovery, delete-queued-on-device, delete-flushed-and-reload, planned-edit-kept-on-device, planned-edit-replayed-and-reentry, journey-completion이다. 선언한 실패 completed-session-update-first-attempt-503:POST /rest/v1/rpc/save_session_v5; completed-session-delete-first-attempt-503:POST /rest/v1/rpc/delete_session_v5; planned-edit-first-direct-attempt-503:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=7와 누락/위반0도 확인했다. 목표: 실제 update 503 뒤 UI가 닫혀도 수정의 owner pending row 1개와 준비 request가 기기에 남아야 한다.의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L350","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L90","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L313"],"evidenceRefs":["app-source-current#CASE-029-6-0","app-source-current#CASE-029-6-1","app-source-current#CASE-029-6-2","app-source-current#CASE-029-6-3","run-browser-2#case-28-fault-0-id","run-browser-2#case-28-fault-0-method","run-browser-2#case-28-fault-0-path","run-browser-2#case-28-fault-0-status","run-browser-2#case-28-fault-0-requestCount","run-browser-2#case-28-fault-0-requiredAttempts","run-browser-2#case-28-fault-0-observedAttempts","run-browser-2#case-28-fault-0-missingAttempts","run-browser-2#case-28-fault-0-violations","run-browser-2#case-28-fault-1-id","run-browser-2#case-28-fault-1-method","run-browser-2#case-28-fault-1-path","run-browser-2#case-28-fault-1-status","run-browser-2#case-28-fault-1-requestCount","run-browser-2#case-28-fault-1-requiredAttempts","run-browser-2#case-28-fault-1-observedAttempts","run-browser-2#case-28-fault-1-missingAttempts","run-browser-2#case-28-fault-1-violations","run-browser-2#case-28-fault-2-id","run-browser-2#case-28-fault-2-method","run-browser-2#case-28-fault-2-path","run-browser-2#case-28-fault-2-status","run-browser-2#case-28-fault-2-requestCount","run-browser-2#case-28-fault-2-requiredAttempts","run-browser-2#case-28-fault-2-observedAttempts","run-browser-2#case-28-fault-2-missingAttempts","run-browser-2#case-28-fault-2-violations","run-browser-2#case-28-required-event-expectedCount","run-browser-2#case-28-required-event-observedCount","run-browser-2#case-28-required-event-missing","run-browser-2#case-28-required-event-violations","run-browser-2#case-28-required-event-0-id","run-browser-2#case-28-required-event-0-operationName","run-browser-2#case-28-required-event-0-receiptStored","run-browser-2#case-28-required-event-0-storedRowVerified","run-browser-2#case-28-required-event-1-id","run-browser-2#case-28-required-event-1-operationName","run-browser-2#case-28-required-event-1-receiptStored","run-browser-2#case-28-required-event-1-storedRowVerified","run-browser-2#case-28-required-event-2-id","run-browser-2#case-28-required-event-2-operationName","run-browser-2#case-28-required-event-2-receiptStored","run-browser-2#case-28-required-event-2-storedRowVerified","run-browser-2#case-28-required-event-3-id","run-browser-2#case-28-required-event-3-operationName","run-browser-2#case-28-required-event-3-receiptStored","run-browser-2#case-28-required-event-3-storedRowVerified","run-browser-2#case-28-required-event-4-id","run-browser-2#case-28-required-event-4-operationName","run-browser-2#case-28-required-event-4-receiptStored","run-browser-2#case-28-required-event-4-storedRowVerified","run-browser-2#case-28-required-event-5-id","run-browser-2#case-28-required-event-5-operationName","run-browser-2#case-28-required-event-5-receiptStored","run-browser-2#case-28-required-event-5-storedRowVerified","run-browser-2#case-28-required-event-6-id","run-browser-2#case-28-required-event-6-operationName","run-browser-2#case-28-required-event-6-receiptStored","run-browser-2#case-28-required-event-6-storedRowVerified","run-browser-2#case-28-goal-checkpoints","run-browser-2#case-28-checkpoints","run-browser-2#case-28-quality-errors","run-browser-2#case-28-diagnostic-errors","run-browser-2#case-28-missing-signals","run-browser-2#case-28-unexpected-browser-errors","run-browser-2#case-28-complete-goals","run-browser-2#case-28-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적: 완료수정/삭제의각503→기기보관→연결복구,같은body재전송·child불변/삭제,별도계획첫실패와자동재전송·단일source·reload.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L321","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L323","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L360","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L369","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L389","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L404","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L472","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L483","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L519","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L525","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L633","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L666","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L683","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L716"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"8":{"status":"P","reason":"online-baseline, edit-queued-on-device, edit-flushed-after-recovery, delete-queued-on-device, delete-flushed-and-reload, planned-edit-kept-on-device, planned-edit-replayed-and-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/case.json#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L728","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L260"],"evidenceRefs":["app-source-current#CASE-029-8-0","app-source-current#CASE-029-8-1","app-source-current#CASE-029-8-2","app-source-current#CASE-029-8-3","run-browser-2#case-28-checkpoints","run-browser-2#case-28-quality-errors","run-browser-2#case-28-diagnostic-errors","run-browser-2#case-28-missing-signals","run-browser-2#case-28-unexpected-browser-errors","run-browser-2#case-28-complete-goals","run-browser-2#case-28-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 실제 update 503 뒤 UI가 닫혀도 수정의 owner pending row 1개와 준비 request가 기기에 남아야 한다. 소유 IndexedDB 행에 대응하는 대표 control 'case-029-failed-update-loses-durable-pending-row'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L350","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/case.json#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81"],"evidenceRefs":["app-source-current#CASE-029-9-0","app-source-current#CASE-029-9-1","app-source-current#CASE-029-9-2","app-source-current#CASE-029-9-3","run-browser-2#case-28-control-0-normal-value","run-browser-2#case-28-control-0-normal","run-browser-2#case-28-control-0-negative-value","run-browser-2#case-28-control-0-negative","run-browser-2#case-28-control-0-restored-value","run-browser-2#case-28-control-0-restored","run-browser-2#case-28-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 4개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L350","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L728","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L83","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L582","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L351","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-029-10-0","app-source-current#CASE-029-10-1","app-source-current#CASE-029-10-2","app-source-current#CASE-029-10-3","run-browser-2#case-28-rpc-observers","run-browser-2#case-28-cleanup-completed","run-browser-2#case-28-cleanup-resources","run-browser-2#case-28-listener-owners","run-browser-2#case-28-page-0-pageClosed","run-browser-2#case-28-page-0-routeCleanup","run-browser-2#case-28-page-0-observerDisposal","run-browser-2#case-28-page-0-currentPending","run-browser-2#case-28-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 21111ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-029-11-0","app-source-current#CASE-029-11-1","run-browser-2#case-28-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적: 기본expect/action/navigation은각10초이고이spec의명시적대기상향은10초이하이며test timeout60초를상속한다. 같은조건의자동CASE재실행으로대기상한을늘리지않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L728"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"13":{"status":"P","reason":"정적: retries=0을 상속하고 CASE별 재시도 override가 없다. 내부 조건 poll은 동일 시도의 상태 관측이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"14":{"status":"P","reason":"정적: 필수local환경은준비불가시config에서즉시실패하고reporter는skip/fixme/비최초성공을거부한다. 현spec에only나시간상향/무조건성공우회는없다. 예상오류는후속명시단언및공통gate로판정한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-029-offline-edit-delete-queue-flush-round-trip/regression.spec.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L642","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L638"],"evidenceRefs":["app-source-current#CASE-029-15-0","app-source-current#CASE-029-15-1","app-source-current#CASE-029-15-2","app-source-current#CASE-029-15-3","run-browser-2#case-28-diagnostic-count","run-browser-2#case-28-diagnostic-revision","run-browser-2#case-28-diagnostic-runId","run-browser-2#case-28-diagnostic-attempt","run-browser-2#case-28-diagnostic-project","run-browser-2#case-28-diagnostic-locale","run-browser-2#case-28-diagnostic-timezone","run-browser-2#case-28-diagnostic-startedAt","run-browser-2#case-28-diagnostic-finishedAt","run-browser-2#case-28-diagnostic-cleanupStage","run-browser-2#case-28-diagnostic-status","run-browser-2#case-28-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"5e1085960244ee76cfbde7c9f65be178eb9e6cba17362baa349e7b846fb8eccf"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"d5f12757d33911b15098123537edeb925472ab8f8742c91d1301c7e8a766f0c9"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-030","title":"Assisted exercise effective load round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L28","checks":{"1":{"status":"P","reason":"정적 의미 확인: 체중 80·보조 20·8회 입력부터 원자 저장/유효 부하와 상세 재진입까지 연결한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L90","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L146","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L173"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:00.780Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 assisted-set-record-and-save, reload-reentry, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-030-2-0","app-source-current#CASE-030-2-1","app-source-current#CASE-030-2-2","app-source-current#CASE-030-2-3","run-browser-3#case-29-diagnostic-count","run-browser-3#case-29-diagnostic-revision","run-browser-3#case-29-diagnostic-runId","run-browser-3#case-29-diagnostic-attempt","run-browser-3#case-29-diagnostic-project","run-browser-3#case-29-diagnostic-locale","run-browser-3#case-29-diagnostic-timezone","run-browser-3#case-29-diagnostic-startedAt","run-browser-3#case-29-diagnostic-finishedAt","run-browser-3#case-29-diagnostic-cleanupStage","run-browser-3#case-29-diagnostic-status","run-browser-3#case-29-diagnostic-sessionDate","run-browser-3#case-29-checkpoints","run-browser-3#case-29-quality-errors","run-browser-3#case-29-diagnostic-errors","run-browser-3#case-29-missing-signals","run-browser-3#case-29-unexpected-browser-errors","run-browser-3#case-29-complete-goals","run-browser-3#case-29-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 assisted-set-record-and-save, reload-reentry, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-030-3-0","app-source-current#CASE-030-3-1","app-source-current#CASE-030-3-2","app-source-current#CASE-030-3-3","run-browser-3#case-29-rpc-observers","run-browser-3#case-29-cleanup-completed","run-browser-3#case-29-cleanup-resources","run-browser-3#case-29-listener-owners","run-browser-3#case-29-page-0-pageClosed","run-browser-3#case-29-page-0-routeCleanup","run-browser-3#case-29-page-0-observerDisposal","run-browser-3#case-29-page-0-currentPending","run-browser-3#case-29-page-0-previousDocumentPending","run-browser-3#case-29-checkpoints","run-browser-3#case-29-quality-errors","run-browser-3#case-29-diagnostic-errors","run-browser-3#case-29-missing-signals","run-browser-3#case-29-unexpected-browser-errors","run-browser-3#case-29-complete-goals","run-browser-3#case-29-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 홈·편집창·체크박스·완료 화면 상태와 실제 저장 revision을 확인한 뒤 DB 및 reload 상세로 진행한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L175"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 80−20=60을 테스트 상수로 독립 계산하고 assist=20/load=null/reps=8/stats_load=0을 직접 비교한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L157","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L162"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Assisted exercise effective load round trip: 실제 완료한 필수 상황·목표 checkpoint는 assisted-set-record-and-save, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 보조 20kg을 유효 부하 60kg 대신 그대로 저장하는 계산 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L163","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-030-6-0","app-source-current#CASE-030-6-1","app-source-current#CASE-030-6-2","app-source-current#CASE-030-6-3","run-browser-3#case-29-goal-checkpoints","run-browser-3#case-29-checkpoints","run-browser-3#case-29-quality-errors","run-browser-3#case-29-diagnostic-errors","run-browser-3#case-29-missing-signals","run-browser-3#case-29-unexpected-browser-errors","run-browser-3#case-29-complete-goals","run-browser-3#case-29-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 보조 입력 대신 일반 무게가 나타나지 않음, 종목·세트 각 1개, 잘못된 일반 kg 표시와 오류 부재를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L155","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L181"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"assisted-set-record-and-save, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-030-8-0","app-source-current#CASE-030-8-1","app-source-current#CASE-030-8-2","app-source-current#CASE-030-8-3","run-browser-3#case-29-checkpoints","run-browser-3#case-29-quality-errors","run-browser-3#case-29-diagnostic-errors","run-browser-3#case-29-missing-signals","run-browser-3#case-29-unexpected-browser-errors","run-browser-3#case-29-complete-goals","run-browser-3#case-29-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 보조 20kg을 유효 부하 60kg 대신 그대로 저장하는 계산 결함 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case030-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-030-assisted-exercise-effective-load-round-trip/regression.spec.mjs#L163","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-030-9-0","app-source-current#CASE-030-9-1","run-browser-3#case-29-control-0-normal-value","run-browser-3#case-29-control-0-normal","run-browser-3#case-29-control-0-negative-value","run-browser-3#case-29-control-0-negative","run-browser-3#case-29-control-0-restored-value","run-browser-3#case-29-control-0-restored","run-browser-3#case-29-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-030-10-0","app-source-current#CASE-030-10-1","app-source-current#CASE-030-10-2","app-source-current#CASE-030-10-3","run-browser-3#case-29-rpc-observers","run-browser-3#case-29-cleanup-completed","run-browser-3#case-29-cleanup-resources","run-browser-3#case-29-listener-owners","run-browser-3#case-29-page-0-pageClosed","run-browser-3#case-29-page-0-routeCleanup","run-browser-3#case-29-page-0-observerDisposal","run-browser-3#case-29-page-0-currentPending","run-browser-3#case-29-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6160ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-030-11-0","app-source-current#CASE-030-11-1","app-source-current#CASE-030-11-2","run-browser-3#case-29-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-030-12-0","app-source-current#CASE-030-12-1","app-source-current#CASE-030-12-2","app-source-current#CASE-030-12-3","run-browser-3#case-29-checkpoints","run-browser-3#case-29-quality-errors","run-browser-3#case-29-diagnostic-errors","run-browser-3#case-29-missing-signals","run-browser-3#case-29-unexpected-browser-errors","run-browser-3#case-29-complete-goals","run-browser-3#case-29-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-030-14-0","app-source-current#CASE-030-14-1","app-source-current#CASE-030-14-2","app-source-current#CASE-030-14-3","run-browser-3#case-29-checkpoints","run-browser-3#case-29-quality-errors","run-browser-3#case-29-diagnostic-errors","run-browser-3#case-29-missing-signals","run-browser-3#case-29-unexpected-browser-errors","run-browser-3#case-29-complete-goals","run-browser-3#case-29-control-records","run-browser-3#case-29-native-status","run-browser-3#case-29-retry","run-browser-3#case-29-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-030-15-0","app-source-current#CASE-030-15-1","app-source-current#CASE-030-15-2","app-source-current#CASE-030-15-3","run-browser-3#case-29-diagnostic-count","run-browser-3#case-29-diagnostic-revision","run-browser-3#case-29-diagnostic-runId","run-browser-3#case-29-diagnostic-attempt","run-browser-3#case-29-diagnostic-project","run-browser-3#case-29-diagnostic-locale","run-browser-3#case-29-diagnostic-timezone","run-browser-3#case-29-diagnostic-startedAt","run-browser-3#case-29-diagnostic-finishedAt","run-browser-3#case-29-diagnostic-cleanupStage","run-browser-3#case-29-diagnostic-status","run-browser-3#case-29-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-031","title":"Custom dumbbell exercise load multiplier round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L27","checks":{"1":{"status":"P","reason":"정적 의미 확인: 커스텀 양손 덤벨 배수 선택→20kg×10→서버 유효 부하 40→상세 20kg 표시를 연결한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L18","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L163"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:07.174Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 custom-registration-with-multiplier, live-set-effective-load, reload-reentry, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L18","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-031-2-0","app-source-current#CASE-031-2-1","app-source-current#CASE-031-2-2","app-source-current#CASE-031-2-3","run-browser-3#case-30-diagnostic-count","run-browser-3#case-30-diagnostic-revision","run-browser-3#case-30-diagnostic-runId","run-browser-3#case-30-diagnostic-attempt","run-browser-3#case-30-diagnostic-project","run-browser-3#case-30-diagnostic-locale","run-browser-3#case-30-diagnostic-timezone","run-browser-3#case-30-diagnostic-startedAt","run-browser-3#case-30-diagnostic-finishedAt","run-browser-3#case-30-diagnostic-cleanupStage","run-browser-3#case-30-diagnostic-status","run-browser-3#case-30-diagnostic-sessionDate","run-browser-3#case-30-checkpoints","run-browser-3#case-30-quality-errors","run-browser-3#case-30-diagnostic-errors","run-browser-3#case-30-missing-signals","run-browser-3#case-30-unexpected-browser-errors","run-browser-3#case-30-complete-goals","run-browser-3#case-30-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 custom-registration-with-multiplier, live-set-effective-load, reload-reentry, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L177","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-031-3-0","app-source-current#CASE-031-3-1","app-source-current#CASE-031-3-2","app-source-current#CASE-031-3-3","run-browser-3#case-30-rpc-observers","run-browser-3#case-30-cleanup-completed","run-browser-3#case-30-cleanup-resources","run-browser-3#case-30-listener-owners","run-browser-3#case-30-page-0-pageClosed","run-browser-3#case-30-page-0-routeCleanup","run-browser-3#case-30-page-0-observerDisposal","run-browser-3#case-30-page-0-currentPending","run-browser-3#case-30-page-0-previousDocumentPending","run-browser-3#case-30-checkpoints","run-browser-3#case-30-quality-errors","run-browser-3#case-30-diagnostic-errors","run-browser-3#case-30-missing-signals","run-browser-3#case-30-unexpected-browser-errors","run-browser-3#case-30-complete-goals","run-browser-3#case-30-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 실제 선택 속성·저장 행·홈·상세 상태를 기다리며 계산 응답 도착만으로 UI 준비를 대신하지 않는다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L163"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 20×2=40의 독립 상수 계산, reps=10 및 표시용 load=20·통계 400kg를 직접 단언한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L18","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L120","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L145"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Custom dumbbell exercise load multiplier round trip: 실제 완료한 필수 상황·목표 checkpoint는 custom-registration-with-multiplier, live-set-effective-load, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 덤벨 2개 배수를 무시해 유효 부하가 40kg 대신 20kg이 되는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-031-6-0","app-source-current#CASE-031-6-1","app-source-current#CASE-031-6-2","app-source-current#CASE-031-6-3","run-browser-3#case-30-goal-checkpoints","run-browser-3#case-30-checkpoints","run-browser-3#case-30-quality-errors","run-browser-3#case-30-diagnostic-errors","run-browser-3#case-30-missing-signals","run-browser-3#case-30-unexpected-browser-errors","run-browser-3#case-30-complete-goals","run-browser-3#case-30-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 배수 기본 1→선택 2, 보조 칸 없음, 카탈로그·세션 스냅샷, 단일 세트, 상세에 40kg 오표시 없음까지 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L137","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L169"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"custom-registration-with-multiplier, live-set-effective-load, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L177","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-031-8-0","app-source-current#CASE-031-8-1","app-source-current#CASE-031-8-2","app-source-current#CASE-031-8-3","run-browser-3#case-30-checkpoints","run-browser-3#case-30-quality-errors","run-browser-3#case-30-diagnostic-errors","run-browser-3#case-30-missing-signals","run-browser-3#case-30-unexpected-browser-errors","run-browser-3#case-30-complete-goals","run-browser-3#case-30-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 덤벨 2개 배수를 무시해 유효 부하가 40kg 대신 20kg이 되는 결함 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case031-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-031-custom-dumbbell-load-multiplier-round-trip/regression.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-031-9-0","app-source-current#CASE-031-9-1","run-browser-3#case-30-control-0-normal-value","run-browser-3#case-30-control-0-normal","run-browser-3#case-30-control-0-negative-value","run-browser-3#case-30-control-0-negative","run-browser-3#case-30-control-0-restored-value","run-browser-3#case-30-control-0-restored","run-browser-3#case-30-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-031-10-0","app-source-current#CASE-031-10-1","app-source-current#CASE-031-10-2","app-source-current#CASE-031-10-3","run-browser-3#case-30-rpc-observers","run-browser-3#case-30-cleanup-completed","run-browser-3#case-30-cleanup-resources","run-browser-3#case-30-listener-owners","run-browser-3#case-30-page-0-pageClosed","run-browser-3#case-30-page-0-routeCleanup","run-browser-3#case-30-page-0-observerDisposal","run-browser-3#case-30-page-0-currentPending","run-browser-3#case-30-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6544ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-031-11-0","app-source-current#CASE-031-11-1","app-source-current#CASE-031-11-2","run-browser-3#case-30-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-031-12-0","app-source-current#CASE-031-12-1","app-source-current#CASE-031-12-2","app-source-current#CASE-031-12-3","run-browser-3#case-30-checkpoints","run-browser-3#case-30-quality-errors","run-browser-3#case-30-diagnostic-errors","run-browser-3#case-30-missing-signals","run-browser-3#case-30-unexpected-browser-errors","run-browser-3#case-30-complete-goals","run-browser-3#case-30-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-031-14-0","app-source-current#CASE-031-14-1","app-source-current#CASE-031-14-2","app-source-current#CASE-031-14-3","run-browser-3#case-30-checkpoints","run-browser-3#case-30-quality-errors","run-browser-3#case-30-diagnostic-errors","run-browser-3#case-30-missing-signals","run-browser-3#case-30-unexpected-browser-errors","run-browser-3#case-30-complete-goals","run-browser-3#case-30-control-records","run-browser-3#case-30-native-status","run-browser-3#case-30-retry","run-browser-3#case-30-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-031-15-0","app-source-current#CASE-031-15-1","app-source-current#CASE-031-15-2","app-source-current#CASE-031-15-3","run-browser-3#case-30-diagnostic-count","run-browser-3#case-30-diagnostic-revision","run-browser-3#case-30-diagnostic-runId","run-browser-3#case-30-diagnostic-attempt","run-browser-3#case-30-diagnostic-project","run-browser-3#case-30-diagnostic-locale","run-browser-3#case-30-diagnostic-timezone","run-browser-3#case-30-diagnostic-startedAt","run-browser-3#case-30-diagnostic-finishedAt","run-browser-3#case-30-diagnostic-cleanupStage","run-browser-3#case-30-diagnostic-status","run-browser-3#case-30-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-032","title":"Finish-screen record delete closes immediately and the queued delete reaches the server once","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L35","checks":{"1":{"status":"P","reason":"정적 의미 확인: 삭제 ACK를 붙들고 완료 화면의 즉시 닫힘·상세 재조회 없음·대기열·단일 서버 삭제·재진입 부재를 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L164","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L177","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L207","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L227"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:13.804Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 online-baseline, delete-closes-before-response, delete-reaches-server-once, reload-keeps-record-absent, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-032-2-0","app-source-current#CASE-032-2-1","app-source-current#CASE-032-2-2","app-source-current#CASE-032-2-3","run-browser-3#case-31-diagnostic-count","run-browser-3#case-31-diagnostic-revision","run-browser-3#case-31-diagnostic-runId","run-browser-3#case-31-diagnostic-attempt","run-browser-3#case-31-diagnostic-project","run-browser-3#case-31-diagnostic-locale","run-browser-3#case-31-diagnostic-timezone","run-browser-3#case-31-diagnostic-startedAt","run-browser-3#case-31-diagnostic-finishedAt","run-browser-3#case-31-diagnostic-cleanupStage","run-browser-3#case-31-diagnostic-status","run-browser-3#case-31-diagnostic-sessionDate","run-browser-3#case-31-checkpoints","run-browser-3#case-31-quality-errors","run-browser-3#case-31-diagnostic-errors","run-browser-3#case-31-missing-signals","run-browser-3#case-31-unexpected-browser-errors","run-browser-3#case-31-complete-goals","run-browser-3#case-31-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 online-baseline, delete-closes-before-response, delete-reaches-server-once, reload-keeps-record-absent, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-032-3-0","app-source-current#CASE-032-3-1","app-source-current#CASE-032-3-2","app-source-current#CASE-032-3-3","run-browser-3#case-31-rpc-observers","run-browser-3#case-31-cleanup-completed","run-browser-3#case-31-cleanup-resources","run-browser-3#case-31-listener-owners","run-browser-3#case-31-page-0-pageClosed","run-browser-3#case-31-page-0-routeCleanup","run-browser-3#case-31-page-0-observerDisposal","run-browser-3#case-31-page-0-currentPending","run-browser-3#case-31-page-0-previousDocumentPending","run-browser-3#case-31-checkpoints","run-browser-3#case-31-quality-errors","run-browser-3#case-31-diagnostic-errors","run-browser-3#case-31-missing-signals","run-browser-3#case-31-unexpected-browser-errors","run-browser-3#case-31-complete-goals","run-browser-3#case-31-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 삭제 응답 gate가 닫힌 동안 화면 닫힘·요청 도착을 단언하고 gate 해제 후 서버·기기 종료를 확인한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L194"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 사전 저장 60kg/개정 1, 요청 횟수 1, 삭제 후 행/자식/대기열 0을 독립 기대값으로 삼는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L145","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L149","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L207","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L210","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L213"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Finish-screen record delete closes immediately and the queued delete reaches the server once: 실제 완료한 필수 상황·목표 checkpoint는 online-baseline, delete-closes-before-response, delete-reaches-server-once, reload-keeps-record-absent, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 기록 삭제 후 자식 세트가 남는 삭제 불완전성의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-032-6-0","app-source-current#CASE-032-6-1","app-source-current#CASE-032-6-2","app-source-current#CASE-032-6-3","run-browser-3#case-31-goal-checkpoints","run-browser-3#case-31-checkpoints","run-browser-3#case-31-quality-errors","run-browser-3#case-31-diagnostic-errors","run-browser-3#case-31-missing-signals","run-browser-3#case-31-unexpected-browser-errors","run-browser-3#case-31-complete-goals","run-browser-3#case-31-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 부모와 하위 행 삭제, 삭제 직전 detail RPC 증가 없음, reload 일지에서 제목/기록 없음, 빈 outbox를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L177","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L207","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L210","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L230","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L238"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"online-baseline, delete-closes-before-response, delete-reaches-server-once, reload-keeps-record-absent, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-032-8-0","app-source-current#CASE-032-8-1","app-source-current#CASE-032-8-2","app-source-current#CASE-032-8-3","run-browser-3#case-31-checkpoints","run-browser-3#case-31-quality-errors","run-browser-3#case-31-diagnostic-errors","run-browser-3#case-31-missing-signals","run-browser-3#case-31-unexpected-browser-errors","run-browser-3#case-31-complete-goals","run-browser-3#case-31-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 기록 삭제 후 자식 세트가 남는 삭제 불완전성 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case032-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-032-finish-screen-delete-immediate-close-round-trip/regression.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-032-9-0","app-source-current#CASE-032-9-1","run-browser-3#case-31-control-0-normal-value","run-browser-3#case-31-control-0-normal","run-browser-3#case-31-control-0-negative-value","run-browser-3#case-31-control-0-negative","run-browser-3#case-31-control-0-restored-value","run-browser-3#case-31-control-0-restored","run-browser-3#case-31-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-032-10-0","app-source-current#CASE-032-10-1","app-source-current#CASE-032-10-2","app-source-current#CASE-032-10-3","run-browser-3#case-31-rpc-observers","run-browser-3#case-31-cleanup-completed","run-browser-3#case-31-cleanup-resources","run-browser-3#case-31-listener-owners","run-browser-3#case-31-page-0-pageClosed","run-browser-3#case-31-page-0-routeCleanup","run-browser-3#case-31-page-0-observerDisposal","run-browser-3#case-31-page-0-currentPending","run-browser-3#case-31-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 5991ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-032-11-0","app-source-current#CASE-032-11-1","app-source-current#CASE-032-11-2","run-browser-3#case-31-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-032-12-0","app-source-current#CASE-032-12-1","app-source-current#CASE-032-12-2","app-source-current#CASE-032-12-3","run-browser-3#case-31-checkpoints","run-browser-3#case-31-quality-errors","run-browser-3#case-31-diagnostic-errors","run-browser-3#case-31-missing-signals","run-browser-3#case-31-unexpected-browser-errors","run-browser-3#case-31-complete-goals","run-browser-3#case-31-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-032-14-0","app-source-current#CASE-032-14-1","app-source-current#CASE-032-14-2","app-source-current#CASE-032-14-3","run-browser-3#case-31-checkpoints","run-browser-3#case-31-quality-errors","run-browser-3#case-31-diagnostic-errors","run-browser-3#case-31-missing-signals","run-browser-3#case-31-unexpected-browser-errors","run-browser-3#case-31-complete-goals","run-browser-3#case-31-control-records","run-browser-3#case-31-native-status","run-browser-3#case-31-retry","run-browser-3#case-31-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-032-15-0","app-source-current#CASE-032-15-1","app-source-current#CASE-032-15-2","app-source-current#CASE-032-15-3","run-browser-3#case-31-diagnostic-count","run-browser-3#case-31-diagnostic-revision","run-browser-3#case-31-diagnostic-runId","run-browser-3#case-31-diagnostic-attempt","run-browser-3#case-31-diagnostic-project","run-browser-3#case-31-diagnostic-locale","run-browser-3#case-31-diagnostic-timezone","run-browser-3#case-31-diagnostic-startedAt","run-browser-3#case-31-diagnostic-finishedAt","run-browser-3#case-31-diagnostic-cleanupStage","run-browser-3#case-31-diagnostic-status","run-browser-3#case-31-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-033","title":"Composite edit, set delete and day set count round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L48","checks":{"1":{"status":"P","reason":"정적 의미 확인: 복합 운동 1세트→3세트→2세트와 세부 세트 2→6→4 및 일일 집계를 실제 UI·DB로 연결한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L168","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L202","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L235","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L250"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:19.956Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 composite-save-five-layers, edit-add-sets-day-count, edit-delete-set-day-count, reload-reentry, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-033-2-0","app-source-current#CASE-033-2-1","app-source-current#CASE-033-2-2","app-source-current#CASE-033-2-3","run-browser-3#case-32-diagnostic-count","run-browser-3#case-32-diagnostic-revision","run-browser-3#case-32-diagnostic-runId","run-browser-3#case-32-diagnostic-attempt","run-browser-3#case-32-diagnostic-project","run-browser-3#case-32-diagnostic-locale","run-browser-3#case-32-diagnostic-timezone","run-browser-3#case-32-diagnostic-startedAt","run-browser-3#case-32-diagnostic-finishedAt","run-browser-3#case-32-diagnostic-cleanupStage","run-browser-3#case-32-diagnostic-status","run-browser-3#case-32-diagnostic-sessionDate","run-browser-3#case-32-checkpoints","run-browser-3#case-32-quality-errors","run-browser-3#case-32-diagnostic-errors","run-browser-3#case-32-missing-signals","run-browser-3#case-32-unexpected-browser-errors","run-browser-3#case-32-complete-goals","run-browser-3#case-32-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 composite-save-five-layers, edit-add-sets-day-count, edit-delete-set-day-count, reload-reentry, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L269","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-033-3-0","app-source-current#CASE-033-3-1","app-source-current#CASE-033-3-2","app-source-current#CASE-033-3-3","run-browser-3#case-32-rpc-observers","run-browser-3#case-32-cleanup-completed","run-browser-3#case-32-cleanup-resources","run-browser-3#case-32-listener-owners","run-browser-3#case-32-page-0-pageClosed","run-browser-3#case-32-page-0-routeCleanup","run-browser-3#case-32-page-0-observerDisposal","run-browser-3#case-32-page-0-currentPending","run-browser-3#case-32-page-0-previousDocumentPending","run-browser-3#case-32-checkpoints","run-browser-3#case-32-quality-errors","run-browser-3#case-32-diagnostic-errors","run-browser-3#case-32-missing-signals","run-browser-3#case-32-unexpected-browser-errors","run-browser-3#case-32-complete-goals","run-browser-3#case-32-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 수정 완료·서버 revision 전이·UI의 세트 개수와 실제 일일 RPC 집계를 기다린다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L106","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L250"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 예상 set position [1,2,3]→[1,2], part 수 2/6/4, 일일 집계 3/2는 입력과 계층 계약에서 독립적으로 정한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L174","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L204","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L237","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L250"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Composite edit, set delete and day set count round trip: 실제 완료한 필수 상황·목표 checkpoint는 composite-save-five-layers, edit-add-sets-day-count, edit-delete-set-day-count, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 복합 운동 세트 삭제 후 세 번째 세트가 남는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L106","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L239","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-033-6-0","app-source-current#CASE-033-6-1","app-source-current#CASE-033-6-2","app-source-current#CASE-033-6-3","run-browser-3#case-32-goal-checkpoints","run-browser-3#case-32-checkpoints","run-browser-3#case-32-quality-errors","run-browser-3#case-32-diagnostic-errors","run-browser-3#case-32-missing-signals","run-browser-3#case-32-unexpected-browser-errors","run-browser-3#case-32-complete-goals","run-browser-3#case-32-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 복합 부모/자식 연결 ID와 개수, 삭제된 한 세트, 세부 세트를 중복 집계하지 않는 총수 및 reload 종목 표시를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L208","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L238","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L260"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"composite-save-five-layers, edit-add-sets-day-count, edit-delete-set-day-count, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/case.json#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L269","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-033-8-0","app-source-current#CASE-033-8-1","app-source-current#CASE-033-8-2","app-source-current#CASE-033-8-3","run-browser-3#case-32-checkpoints","run-browser-3#case-32-quality-errors","run-browser-3#case-32-diagnostic-errors","run-browser-3#case-32-missing-signals","run-browser-3#case-32-unexpected-browser-errors","run-browser-3#case-32-complete-goals","run-browser-3#case-32-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 복합 운동 세트 삭제 후 세 번째 세트가 남는 결함 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case033-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-033-composite-edit-set-delete-day-set-count-round-trip/regression.spec.mjs#L239","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-033-9-0","app-source-current#CASE-033-9-1","run-browser-3#case-32-control-0-normal-value","run-browser-3#case-32-control-0-normal","run-browser-3#case-32-control-0-negative-value","run-browser-3#case-32-control-0-negative","run-browser-3#case-32-control-0-restored-value","run-browser-3#case-32-control-0-restored","run-browser-3#case-32-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-033-10-0","app-source-current#CASE-033-10-1","app-source-current#CASE-033-10-2","app-source-current#CASE-033-10-3","run-browser-3#case-32-rpc-observers","run-browser-3#case-32-cleanup-completed","run-browser-3#case-32-cleanup-resources","run-browser-3#case-32-listener-owners","run-browser-3#case-32-page-0-pageClosed","run-browser-3#case-32-page-0-routeCleanup","run-browser-3#case-32-page-0-observerDisposal","run-browser-3#case-32-page-0-currentPending","run-browser-3#case-32-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 13835ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-033-11-0","app-source-current#CASE-033-11-1","app-source-current#CASE-033-11-2","run-browser-3#case-32-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-033-12-0","app-source-current#CASE-033-12-1","app-source-current#CASE-033-12-2","app-source-current#CASE-033-12-3","run-browser-3#case-32-checkpoints","run-browser-3#case-32-quality-errors","run-browser-3#case-32-diagnostic-errors","run-browser-3#case-32-missing-signals","run-browser-3#case-32-unexpected-browser-errors","run-browser-3#case-32-complete-goals","run-browser-3#case-32-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-033-14-0","app-source-current#CASE-033-14-1","app-source-current#CASE-033-14-2","app-source-current#CASE-033-14-3","run-browser-3#case-32-checkpoints","run-browser-3#case-32-quality-errors","run-browser-3#case-32-diagnostic-errors","run-browser-3#case-32-missing-signals","run-browser-3#case-32-unexpected-browser-errors","run-browser-3#case-32-complete-goals","run-browser-3#case-32-control-records","run-browser-3#case-32-native-status","run-browser-3#case-32-retry","run-browser-3#case-32-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-033-15-0","app-source-current#CASE-033-15-1","app-source-current#CASE-033-15-2","app-source-current#CASE-033-15-3","run-browser-3#case-32-diagnostic-count","run-browser-3#case-32-diagnostic-revision","run-browser-3#case-32-diagnostic-runId","run-browser-3#case-32-diagnostic-attempt","run-browser-3#case-32-diagnostic-project","run-browser-3#case-32-diagnostic-locale","run-browser-3#case-32-diagnostic-timezone","run-browser-3#case-32-diagnostic-startedAt","run-browser-3#case-32-diagnostic-finishedAt","run-browser-3#case-32-diagnostic-cleanupStage","run-browser-3#case-32-diagnostic-status","run-browser-3#case-32-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-034","title":"Plan partial completion same-row transition round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L65","checks":{"1":{"status":"P","reason":"정적 의미 확인: 계획 두 세트 중 한 세트만 완료해 같은 행을 completed로 전이하고 미완료 세트/계획 카드를 없애는 목적이다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L200","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L224"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:33.965Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 plan-save-and-card, partial-completion-transition, card-gone-day-count, reload-reentry, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-034-2-0","app-source-current#CASE-034-2-1","app-source-current#CASE-034-2-2","app-source-current#CASE-034-2-3","run-browser-3#case-33-diagnostic-count","run-browser-3#case-33-diagnostic-revision","run-browser-3#case-33-diagnostic-runId","run-browser-3#case-33-diagnostic-attempt","run-browser-3#case-33-diagnostic-project","run-browser-3#case-33-diagnostic-locale","run-browser-3#case-33-diagnostic-timezone","run-browser-3#case-33-diagnostic-startedAt","run-browser-3#case-33-diagnostic-finishedAt","run-browser-3#case-33-diagnostic-cleanupStage","run-browser-3#case-33-diagnostic-status","run-browser-3#case-33-diagnostic-sessionDate","run-browser-3#case-33-checkpoints","run-browser-3#case-33-quality-errors","run-browser-3#case-33-diagnostic-errors","run-browser-3#case-33-missing-signals","run-browser-3#case-33-unexpected-browser-errors","run-browser-3#case-33-complete-goals","run-browser-3#case-33-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 plan-save-and-card, partial-completion-transition, card-gone-day-count, reload-reentry, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L244","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-034-3-0","app-source-current#CASE-034-3-1","app-source-current#CASE-034-3-2","app-source-current#CASE-034-3-3","run-browser-3#case-33-rpc-observers","run-browser-3#case-33-cleanup-completed","run-browser-3#case-33-cleanup-resources","run-browser-3#case-33-listener-owners","run-browser-3#case-33-page-0-pageClosed","run-browser-3#case-33-page-0-routeCleanup","run-browser-3#case-33-page-0-observerDisposal","run-browser-3#case-33-page-0-currentPending","run-browser-3#case-33-page-0-previousDocumentPending","run-browser-3#case-33-checkpoints","run-browser-3#case-33-quality-errors","run-browser-3#case-33-diagnostic-errors","run-browser-3#case-33-missing-signals","run-browser-3#case-33-unexpected-browser-errors","run-browser-3#case-33-complete-goals","run-browser-3#case-33-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 계획 카드·체크박스·완료 확인 및 실제 저장 revision 후 DB/홈 집계로 진행한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L200"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 50kg×5, planned set 2→completed set 1, 같은 plan.id, revision 1→2와 일일 집계 1을 입력·계약으로 정한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L145","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L200","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L202","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L215","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L226"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Plan partial completion same-row transition round trip: 실제 완료한 필수 상황·목표 checkpoint는 plan-save-and-card, partial-completion-transition, card-gone-day-count, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 부분 완료 후 계획이 completed로 전이되지 않고 planned로 남는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-034-6-0","app-source-current#CASE-034-6-1","app-source-current#CASE-034-6-2","app-source-current#CASE-034-6-3","run-browser-3#case-33-goal-checkpoints","run-browser-3#case-33-checkpoints","run-browser-3#case-33-quality-errors","run-browser-3#case-33-diagnostic-errors","run-browser-3#case-33-missing-signals","run-browser-3#case-33-unexpected-browser-errors","run-browser-3#case-33-complete-goals","run-browser-3#case-33-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 동일 owner/date에 completed 행 한 개, 미완료 세트 삭제, 홈 계획 카드 제거, reload 상세 값을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L204","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L205","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L224","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L235"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"plan-save-and-card, partial-completion-transition, card-gone-day-count, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L244","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-034-8-0","app-source-current#CASE-034-8-1","app-source-current#CASE-034-8-2","app-source-current#CASE-034-8-3","run-browser-3#case-33-checkpoints","run-browser-3#case-33-quality-errors","run-browser-3#case-33-diagnostic-errors","run-browser-3#case-33-missing-signals","run-browser-3#case-33-unexpected-browser-errors","run-browser-3#case-33-complete-goals","run-browser-3#case-33-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 부분 완료 후 계획이 completed로 전이되지 않고 planned로 남는 결함 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case034-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-034-plan-partial-completion-same-row-transition-round-trip/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-034-9-0","app-source-current#CASE-034-9-1","run-browser-3#case-33-control-0-normal-value","run-browser-3#case-33-control-0-normal","run-browser-3#case-33-control-0-negative-value","run-browser-3#case-33-control-0-negative","run-browser-3#case-33-control-0-restored-value","run-browser-3#case-33-control-0-restored","run-browser-3#case-33-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-034-10-0","app-source-current#CASE-034-10-1","app-source-current#CASE-034-10-2","app-source-current#CASE-034-10-3","run-browser-3#case-33-rpc-observers","run-browser-3#case-33-cleanup-completed","run-browser-3#case-33-cleanup-resources","run-browser-3#case-33-listener-owners","run-browser-3#case-33-page-0-pageClosed","run-browser-3#case-33-page-0-routeCleanup","run-browser-3#case-33-page-0-observerDisposal","run-browser-3#case-33-page-0-currentPending","run-browser-3#case-33-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8353ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-034-11-0","app-source-current#CASE-034-11-1","app-source-current#CASE-034-11-2","run-browser-3#case-33-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-034-12-0","app-source-current#CASE-034-12-1","app-source-current#CASE-034-12-2","app-source-current#CASE-034-12-3","run-browser-3#case-33-checkpoints","run-browser-3#case-33-quality-errors","run-browser-3#case-33-diagnostic-errors","run-browser-3#case-33-missing-signals","run-browser-3#case-33-unexpected-browser-errors","run-browser-3#case-33-complete-goals","run-browser-3#case-33-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-034-14-0","app-source-current#CASE-034-14-1","app-source-current#CASE-034-14-2","app-source-current#CASE-034-14-3","run-browser-3#case-33-checkpoints","run-browser-3#case-33-quality-errors","run-browser-3#case-33-diagnostic-errors","run-browser-3#case-33-missing-signals","run-browser-3#case-33-unexpected-browser-errors","run-browser-3#case-33-complete-goals","run-browser-3#case-33-control-records","run-browser-3#case-33-native-status","run-browser-3#case-33-retry","run-browser-3#case-33-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-034-15-0","app-source-current#CASE-034-15-1","app-source-current#CASE-034-15-2","app-source-current#CASE-034-15-3","run-browser-3#case-33-diagnostic-count","run-browser-3#case-33-diagnostic-revision","run-browser-3#case-33-diagnostic-runId","run-browser-3#case-33-diagnostic-attempt","run-browser-3#case-33-diagnostic-project","run-browser-3#case-33-diagnostic-locale","run-browser-3#case-33-diagnostic-timezone","run-browser-3#case-33-diagnostic-startedAt","run-browser-3#case-33-diagnostic-finishedAt","run-browser-3#case-33-diagnostic-cleanupStage","run-browser-3#case-33-diagnostic-status","run-browser-3#case-33-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-035","title":"Group board member start and origin round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L51","checks":{"1":{"status":"P","reason":"정적 의미 확인: 그룹장 보드에서 멤버가 시작한 개인 운동의 group-board 계보와 원래 보드 보존을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L137","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L203","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L220"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:42.531Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 board-as-planned-group-session, member-start-and-origin, group-day-sessions, reload-reentry, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-035-2-0","app-source-current#CASE-035-2-1","app-source-current#CASE-035-2-2","app-source-current#CASE-035-2-3","run-browser-3#case-34-diagnostic-count","run-browser-3#case-34-diagnostic-revision","run-browser-3#case-34-diagnostic-runId","run-browser-3#case-34-diagnostic-attempt","run-browser-3#case-34-diagnostic-project","run-browser-3#case-34-diagnostic-locale","run-browser-3#case-34-diagnostic-timezone","run-browser-3#case-34-diagnostic-startedAt","run-browser-3#case-34-diagnostic-finishedAt","run-browser-3#case-34-diagnostic-cleanupStage","run-browser-3#case-34-diagnostic-status","run-browser-3#case-34-diagnostic-sessionDate","run-browser-3#case-34-checkpoints","run-browser-3#case-34-quality-errors","run-browser-3#case-34-diagnostic-errors","run-browser-3#case-34-missing-signals","run-browser-3#case-34-unexpected-browser-errors","run-browser-3#case-34-complete-goals","run-browser-3#case-34-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 board-as-planned-group-session, member-start-and-origin, group-day-sessions, reload-reentry, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L250","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-035-3-0","app-source-current#CASE-035-3-1","app-source-current#CASE-035-3-2","app-source-current#CASE-035-3-3","run-browser-3#case-34-rpc-observers","run-browser-3#case-34-cleanup-completed","run-browser-3#case-34-cleanup-resources","run-browser-3#case-34-listener-owners","run-browser-3#case-34-page-0-pageClosed","run-browser-3#case-34-page-0-routeCleanup","run-browser-3#case-34-page-0-observerDisposal","run-browser-3#case-34-page-0-currentPending","run-browser-3#case-34-page-0-previousDocumentPending","run-browser-3#case-34-page-1-pageClosed","run-browser-3#case-34-page-1-routeCleanup","run-browser-3#case-34-page-1-observerDisposal","run-browser-3#case-34-page-1-currentPending","run-browser-3#case-34-page-1-previousDocumentPending","run-browser-3#case-34-checkpoints","run-browser-3#case-34-quality-errors","run-browser-3#case-34-diagnostic-errors","run-browser-3#case-34-missing-signals","run-browser-3#case-34-unexpected-browser-errors","run-browser-3#case-34-complete-goals","run-browser-3#case-34-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 초대 수락·보드·멤버 운동 완료를 실제 화면/행 관측으로 연결한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L194"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 60kg×5와 origin_kind=group-board/origin_ref=그룹:날짜/group_id=null을 계약 상수와 준비 ID로 판정한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L203","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L204","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L205","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L217"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Group board member start and origin round trip: 실제 완료한 필수 상황·목표 checkpoint는 board-as-planned-group-session, member-start-and-origin, group-day-sessions, reload-reentry, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 멤버 개인 운동이 그룹 계획 소유로 잘못 분류되는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-035-6-0","app-source-current#CASE-035-6-1","app-source-current#CASE-035-6-2","app-source-current#CASE-035-6-3","run-browser-3#case-34-goal-checkpoints","run-browser-3#case-34-checkpoints","run-browser-3#case-34-quality-errors","run-browser-3#case-34-diagnostic-errors","run-browser-3#case-34-missing-signals","run-browser-3#case-34-unexpected-browser-errors","run-browser-3#case-34-complete-goals","run-browser-3#case-34-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 멤버 개인 기록 한 세트, 원래 그룹장 보드 planned 유지, 완료 멤버 목록 및 보드 reload를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L221","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L231","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L240"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"board-as-planned-group-session, member-start-and-origin, group-day-sessions, reload-reentry, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L250","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-035-8-0","app-source-current#CASE-035-8-1","app-source-current#CASE-035-8-2","app-source-current#CASE-035-8-3","run-browser-3#case-34-checkpoints","run-browser-3#case-34-quality-errors","run-browser-3#case-34-diagnostic-errors","run-browser-3#case-34-missing-signals","run-browser-3#case-34-unexpected-browser-errors","run-browser-3#case-34-complete-goals","run-browser-3#case-34-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 멤버 개인 운동이 그룹 계획 소유로 잘못 분류되는 결함 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case035-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-035-group-board-member-start-origin-round-trip/regression.spec.mjs#L206","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-035-9-0","app-source-current#CASE-035-9-1","run-browser-3#case-34-control-0-normal-value","run-browser-3#case-34-control-0-normal","run-browser-3#case-34-control-0-negative-value","run-browser-3#case-34-control-0-negative","run-browser-3#case-34-control-0-restored-value","run-browser-3#case-34-control-0-restored","run-browser-3#case-34-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-035-10-0","app-source-current#CASE-035-10-1","app-source-current#CASE-035-10-2","app-source-current#CASE-035-10-3","run-browser-3#case-34-rpc-observers","run-browser-3#case-34-cleanup-completed","run-browser-3#case-34-cleanup-resources","run-browser-3#case-34-listener-owners","run-browser-3#case-34-page-0-pageClosed","run-browser-3#case-34-page-0-routeCleanup","run-browser-3#case-34-page-0-observerDisposal","run-browser-3#case-34-page-0-currentPending","run-browser-3#case-34-page-0-previousDocumentPending","run-browser-3#case-34-page-1-pageClosed","run-browser-3#case-34-page-1-routeCleanup","run-browser-3#case-34-page-1-observerDisposal","run-browser-3#case-34-page-1-currentPending","run-browser-3#case-34-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8981ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-035-11-0","app-source-current#CASE-035-11-1","app-source-current#CASE-035-11-2","run-browser-3#case-34-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-035-12-0","app-source-current#CASE-035-12-1","app-source-current#CASE-035-12-2","app-source-current#CASE-035-12-3","run-browser-3#case-34-checkpoints","run-browser-3#case-34-quality-errors","run-browser-3#case-34-diagnostic-errors","run-browser-3#case-34-missing-signals","run-browser-3#case-34-unexpected-browser-errors","run-browser-3#case-34-complete-goals","run-browser-3#case-34-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-035-14-0","app-source-current#CASE-035-14-1","app-source-current#CASE-035-14-2","app-source-current#CASE-035-14-3","run-browser-3#case-34-checkpoints","run-browser-3#case-34-quality-errors","run-browser-3#case-34-diagnostic-errors","run-browser-3#case-34-missing-signals","run-browser-3#case-34-unexpected-browser-errors","run-browser-3#case-34-complete-goals","run-browser-3#case-34-control-records","run-browser-3#case-34-native-status","run-browser-3#case-34-retry","run-browser-3#case-34-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-035-15-0","app-source-current#CASE-035-15-1","app-source-current#CASE-035-15-2","app-source-current#CASE-035-15-3","run-browser-3#case-34-diagnostic-count","run-browser-3#case-34-diagnostic-revision","run-browser-3#case-34-diagnostic-runId","run-browser-3#case-34-diagnostic-attempt","run-browser-3#case-34-diagnostic-project","run-browser-3#case-34-diagnostic-locale","run-browser-3#case-34-diagnostic-timezone","run-browser-3#case-34-diagnostic-startedAt","run-browser-3#case-34-diagnostic-finishedAt","run-browser-3#case-34-diagnostic-cleanupStage","run-browser-3#case-34-diagnostic-status","run-browser-3#case-34-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-036","title":"Retired write contract update notice round trip","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L39","checks":{"1":{"status":"P","reason":"정적 의미 확인: 최신 v5 정상 기록과 8개 퇴역 RPC의 LG426·무변경, 실제 브라우저 업데이트 안내/보존을 구분한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L66","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L149","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L175"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:51.654Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 v5-live-save, retired-rpcs-answer-lg426, reload-reentry, retired-contract-browser, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L66","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-036-2-0","app-source-current#CASE-036-2-1","app-source-current#CASE-036-2-2","app-source-current#CASE-036-2-3","run-browser-3#case-35-diagnostic-count","run-browser-3#case-35-diagnostic-revision","run-browser-3#case-35-diagnostic-runId","run-browser-3#case-35-diagnostic-attempt","run-browser-3#case-35-diagnostic-project","run-browser-3#case-35-diagnostic-locale","run-browser-3#case-35-diagnostic-timezone","run-browser-3#case-35-diagnostic-startedAt","run-browser-3#case-35-diagnostic-finishedAt","run-browser-3#case-35-diagnostic-cleanupStage","run-browser-3#case-35-diagnostic-status","run-browser-3#case-35-diagnostic-sessionDate","run-browser-3#case-35-checkpoints","run-browser-3#case-35-quality-errors","run-browser-3#case-35-diagnostic-errors","run-browser-3#case-35-missing-signals","run-browser-3#case-35-unexpected-browser-errors","run-browser-3#case-35-complete-goals","run-browser-3#case-35-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 v5-live-save, retired-rpcs-answer-lg426, reload-reentry, retired-contract-browser, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L232","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-036-3-0","app-source-current#CASE-036-3-1","app-source-current#CASE-036-3-2","app-source-current#CASE-036-3-3","run-browser-3#case-35-rpc-observers","run-browser-3#case-35-cleanup-completed","run-browser-3#case-35-cleanup-resources","run-browser-3#case-35-listener-owners","run-browser-3#case-35-page-0-pageClosed","run-browser-3#case-35-page-0-routeCleanup","run-browser-3#case-35-page-0-observerDisposal","run-browser-3#case-35-page-0-currentPending","run-browser-3#case-35-page-0-previousDocumentPending","run-browser-3#case-35-checkpoints","run-browser-3#case-35-quality-errors","run-browser-3#case-35-diagnostic-errors","run-browser-3#case-35-missing-signals","run-browser-3#case-35-unexpected-browser-errors","run-browser-3#case-35-complete-goals","run-browser-3#case-35-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 실제 퇴역 RPC 400/LG426을 route.fetch로 받아 브라우저에 전달하고 요청 1회·blocked 값을 관측한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L211","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L218"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 60kg×5/revision 1, 정확 SQLSTATE LG426와 update 메시지, blocked 상태 및 저장/receipt 0을 독립 계약으로 삼는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L135","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L221"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Retired write contract update notice round trip: 실제 완료한 필수 상황·목표 checkpoint는 v5-live-save, retired-rpcs-answer-lg426, reload-reentry, retired-contract-browser, journey-completion이다. 선언한 실패 retired-contract-browser-response:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 퇴역 RPC가 LG426 대신 일반 오류를 반환하는 계약 회귀의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-036-6-0","app-source-current#CASE-036-6-1","app-source-current#CASE-036-6-2","app-source-current#CASE-036-6-3","run-browser-3#case-35-fault-0-id","run-browser-3#case-35-fault-0-method","run-browser-3#case-35-fault-0-path","run-browser-3#case-35-fault-0-status","run-browser-3#case-35-fault-0-requestCount","run-browser-3#case-35-fault-0-requiredAttempts","run-browser-3#case-35-fault-0-observedAttempts","run-browser-3#case-35-fault-0-missingAttempts","run-browser-3#case-35-fault-0-violations","run-browser-3#case-35-required-event-expectedCount","run-browser-3#case-35-required-event-observedCount","run-browser-3#case-35-required-event-missing","run-browser-3#case-35-required-event-violations","run-browser-3#case-35-required-event-0-id","run-browser-3#case-35-required-event-0-operationName","run-browser-3#case-35-required-event-0-receiptStored","run-browser-3#case-35-required-event-0-storedRowVerified","run-browser-3#case-35-goal-checkpoints","run-browser-3#case-35-checkpoints","run-browser-3#case-35-quality-errors","run-browser-3#case-35-diagnostic-errors","run-browser-3#case-35-missing-signals","run-browser-3#case-35-unexpected-browser-errors","run-browser-3#case-35-complete-goals","run-browser-3#case-35-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 퇴역 8개 모두 거절, 기존 revision·하위 ID 유지, 새 세션 없음, 브라우저 입력 보존 및 자동 재전송 없음까지 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L155","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L215","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L222"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"v5-live-save, retired-rpcs-answer-lg426, reload-reentry, retired-contract-browser, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/case.json#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L232","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-036-8-0","app-source-current#CASE-036-8-1","app-source-current#CASE-036-8-2","app-source-current#CASE-036-8-3","run-browser-3#case-35-checkpoints","run-browser-3#case-35-quality-errors","run-browser-3#case-35-diagnostic-errors","run-browser-3#case-35-missing-signals","run-browser-3#case-35-unexpected-browser-errors","run-browser-3#case-35-complete-goals","run-browser-3#case-35-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 퇴역 RPC가 LG426 대신 일반 오류를 반환하는 계약 회귀 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case036-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-036-retired-write-contract-update-notice-round-trip/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-036-9-0","app-source-current#CASE-036-9-1","run-browser-3#case-35-control-0-normal-value","run-browser-3#case-35-control-0-normal","run-browser-3#case-35-control-0-negative-value","run-browser-3#case-35-control-0-negative","run-browser-3#case-35-control-0-restored-value","run-browser-3#case-35-control-0-restored","run-browser-3#case-35-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-036-10-0","app-source-current#CASE-036-10-1","app-source-current#CASE-036-10-2","app-source-current#CASE-036-10-3","run-browser-3#case-35-rpc-observers","run-browser-3#case-35-cleanup-completed","run-browser-3#case-35-cleanup-resources","run-browser-3#case-35-listener-owners","run-browser-3#case-35-page-0-pageClosed","run-browser-3#case-35-page-0-routeCleanup","run-browser-3#case-35-page-0-observerDisposal","run-browser-3#case-35-page-0-currentPending","run-browser-3#case-35-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 8701ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-036-11-0","app-source-current#CASE-036-11-1","app-source-current#CASE-036-11-2","run-browser-3#case-35-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-036-12-0","app-source-current#CASE-036-12-1","app-source-current#CASE-036-12-2","app-source-current#CASE-036-12-3","run-browser-3#case-35-checkpoints","run-browser-3#case-35-quality-errors","run-browser-3#case-35-diagnostic-errors","run-browser-3#case-35-missing-signals","run-browser-3#case-35-unexpected-browser-errors","run-browser-3#case-35-complete-goals","run-browser-3#case-35-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-036-14-0","app-source-current#CASE-036-14-1","app-source-current#CASE-036-14-2","app-source-current#CASE-036-14-3","run-browser-3#case-35-checkpoints","run-browser-3#case-35-quality-errors","run-browser-3#case-35-diagnostic-errors","run-browser-3#case-35-missing-signals","run-browser-3#case-35-unexpected-browser-errors","run-browser-3#case-35-complete-goals","run-browser-3#case-35-control-records","run-browser-3#case-35-native-status","run-browser-3#case-35-retry","run-browser-3#case-35-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-036-15-0","app-source-current#CASE-036-15-1","app-source-current#CASE-036-15-2","app-source-current#CASE-036-15-3","run-browser-3#case-35-diagnostic-count","run-browser-3#case-35-diagnostic-revision","run-browser-3#case-35-diagnostic-runId","run-browser-3#case-35-diagnostic-attempt","run-browser-3#case-35-diagnostic-project","run-browser-3#case-35-diagnostic-locale","run-browser-3#case-35-diagnostic-timezone","run-browser-3#case-35-diagnostic-startedAt","run-browser-3#case-35-diagnostic-finishedAt","run-browser-3#case-35-diagnostic-cleanupStage","run-browser-3#case-35-diagnostic-status","run-browser-3#case-35-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-037","title":"Home favorite board shows exercise names on first paint while the exercise catalog response is still held","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L32","checks":{"1":{"status":"P","reason":"정적 의미 확인: 카탈로그 응답을 보류한 첫 표시와 reload에서 즐겨찾기 이름이 UUID 대신 표시되는 경계를 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L197"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:00.536Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 board-names-without-catalog, names-stable-after-catalog, reload-paints-names-first, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-037-2-0","app-source-current#CASE-037-2-1","app-source-current#CASE-037-2-2","app-source-current#CASE-037-2-3","run-browser-3#case-36-diagnostic-count","run-browser-3#case-36-diagnostic-revision","run-browser-3#case-36-diagnostic-runId","run-browser-3#case-36-diagnostic-attempt","run-browser-3#case-36-diagnostic-project","run-browser-3#case-36-diagnostic-locale","run-browser-3#case-36-diagnostic-timezone","run-browser-3#case-36-diagnostic-startedAt","run-browser-3#case-36-diagnostic-finishedAt","run-browser-3#case-36-diagnostic-cleanupStage","run-browser-3#case-36-diagnostic-status","run-browser-3#case-36-diagnostic-sessionDate","run-browser-3#case-36-checkpoints","run-browser-3#case-36-quality-errors","run-browser-3#case-36-diagnostic-errors","run-browser-3#case-36-missing-signals","run-browser-3#case-36-unexpected-browser-errors","run-browser-3#case-36-complete-goals","run-browser-3#case-36-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 board-names-without-catalog, names-stable-after-catalog, reload-paints-names-first, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L221","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-037-3-0","app-source-current#CASE-037-3-1","app-source-current#CASE-037-3-2","app-source-current#CASE-037-3-3","run-browser-3#case-36-rpc-observers","run-browser-3#case-36-cleanup-completed","run-browser-3#case-36-cleanup-resources","run-browser-3#case-36-listener-owners","run-browser-3#case-36-page-0-pageClosed","run-browser-3#case-36-page-0-routeCleanup","run-browser-3#case-36-page-0-observerDisposal","run-browser-3#case-36-page-0-currentPending","run-browser-3#case-36-page-0-previousDocumentPending","run-browser-3#case-36-checkpoints","run-browser-3#case-36-quality-errors","run-browser-3#case-36-diagnostic-errors","run-browser-3#case-36-missing-signals","run-browser-3#case-36-unexpected-browser-errors","run-browser-3#case-36-complete-goals","run-browser-3#case-36-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: catalog route gate를 유지한 채 이름을 읽고 요청 도착·응답 해제·기존 이름 유지의 순서를 확인한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L177","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L183"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 기준은 카탈로그에서 준비한 exercise.name, UUID 패턴 배제 및 ID 포함 금지이며 UI 자체를 정답으로 쓰지 않는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L84"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Home favorite board shows exercise names on first paint while the exercise catalog response is still held: 실제 완료한 필수 상황·목표 checkpoint는 board-names-without-catalog, names-stable-after-catalog, reload-paints-names-first, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 카탈로그 대기 중 즐겨찾기에 운동 이름 대신 UUID가 보이는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L177","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-037-6-0","app-source-current#CASE-037-6-1","app-source-current#CASE-037-6-2","app-source-current#CASE-037-6-3","run-browser-3#case-36-goal-checkpoints","run-browser-3#case-36-checkpoints","run-browser-3#case-36-quality-errors","run-browser-3#case-36-diagnostic-errors","run-browser-3#case-36-missing-signals","run-browser-3#case-36-unexpected-browser-errors","run-browser-3#case-36-complete-goals","run-browser-3#case-36-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 빈 이름·UUID·ID 문자열 노출 금지, 즐겨찾기 API/서버 ID 일치, v4 이름 캐시 및 늦은 카탈로그/reload 보존을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L80","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L156","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L167","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L209"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"board-names-without-catalog, names-stable-after-catalog, reload-paints-names-first, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L221","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-037-8-0","app-source-current#CASE-037-8-1","app-source-current#CASE-037-8-2","app-source-current#CASE-037-8-3","run-browser-3#case-36-checkpoints","run-browser-3#case-36-quality-errors","run-browser-3#case-36-diagnostic-errors","run-browser-3#case-36-missing-signals","run-browser-3#case-36-unexpected-browser-errors","run-browser-3#case-36-complete-goals","run-browser-3#case-36-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 카탈로그 대기 중 즐겨찾기에 운동 이름 대신 UUID가 보이는 결함 실제 DOM에 대응하는 대표 control 'case037-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-037-boot-exercise-names-without-catalog/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-037-9-0","app-source-current#CASE-037-9-1","run-browser-3#case-36-control-0-normal-value","run-browser-3#case-36-control-0-normal","run-browser-3#case-36-control-0-negative-value","run-browser-3#case-36-control-0-negative","run-browser-3#case-36-control-0-restored-value","run-browser-3#case-36-control-0-restored","run-browser-3#case-36-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-037-10-0","app-source-current#CASE-037-10-1","app-source-current#CASE-037-10-2","app-source-current#CASE-037-10-3","run-browser-3#case-36-rpc-observers","run-browser-3#case-36-cleanup-completed","run-browser-3#case-36-cleanup-resources","run-browser-3#case-36-listener-owners","run-browser-3#case-36-page-0-pageClosed","run-browser-3#case-36-page-0-routeCleanup","run-browser-3#case-36-page-0-observerDisposal","run-browser-3#case-36-page-0-currentPending","run-browser-3#case-36-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 3597ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-037-11-0","app-source-current#CASE-037-11-1","app-source-current#CASE-037-11-2","run-browser-3#case-36-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-037-12-0","app-source-current#CASE-037-12-1","app-source-current#CASE-037-12-2","app-source-current#CASE-037-12-3","run-browser-3#case-36-checkpoints","run-browser-3#case-36-quality-errors","run-browser-3#case-36-diagnostic-errors","run-browser-3#case-36-missing-signals","run-browser-3#case-36-unexpected-browser-errors","run-browser-3#case-36-complete-goals","run-browser-3#case-36-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-037-14-0","app-source-current#CASE-037-14-1","app-source-current#CASE-037-14-2","app-source-current#CASE-037-14-3","run-browser-3#case-36-checkpoints","run-browser-3#case-36-quality-errors","run-browser-3#case-36-diagnostic-errors","run-browser-3#case-36-missing-signals","run-browser-3#case-36-unexpected-browser-errors","run-browser-3#case-36-complete-goals","run-browser-3#case-36-control-records","run-browser-3#case-36-native-status","run-browser-3#case-36-retry","run-browser-3#case-36-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-037-15-0","app-source-current#CASE-037-15-1","app-source-current#CASE-037-15-2","app-source-current#CASE-037-15-3","run-browser-3#case-36-diagnostic-count","run-browser-3#case-36-diagnostic-revision","run-browser-3#case-36-diagnostic-runId","run-browser-3#case-36-diagnostic-attempt","run-browser-3#case-36-diagnostic-project","run-browser-3#case-36-diagnostic-locale","run-browser-3#case-36-diagnostic-timezone","run-browser-3#case-36-diagnostic-startedAt","run-browser-3#case-36-diagnostic-finishedAt","run-browser-3#case-36-diagnostic-cleanupStage","run-browser-3#case-36-diagnostic-status","run-browser-3#case-36-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-038","title":"Creating a custom exercise pulls one catalog change page instead of the full catalog, and another user's custom exercise never invalidates my device copy","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L40","checks":{"1":{"status":"P","reason":"정적 의미 확인: 초기 전체 1회→내 생성 변경분 1회→타 사용자 생성 후 내 캐시/요청 불변을 구분해 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L237","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L253","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L282"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:04.300Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 first-boot-full-catalog-once, custom-exercise-one-change-page, other-user-custom-no-request, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-038-2-0","app-source-current#CASE-038-2-1","app-source-current#CASE-038-2-2","app-source-current#CASE-038-2-3","run-browser-3#case-37-diagnostic-count","run-browser-3#case-37-diagnostic-revision","run-browser-3#case-37-diagnostic-runId","run-browser-3#case-37-diagnostic-attempt","run-browser-3#case-37-diagnostic-project","run-browser-3#case-37-diagnostic-locale","run-browser-3#case-37-diagnostic-timezone","run-browser-3#case-37-diagnostic-startedAt","run-browser-3#case-37-diagnostic-finishedAt","run-browser-3#case-37-diagnostic-cleanupStage","run-browser-3#case-37-diagnostic-status","run-browser-3#case-37-diagnostic-sessionDate","run-browser-3#case-37-checkpoints","run-browser-3#case-37-quality-errors","run-browser-3#case-37-diagnostic-errors","run-browser-3#case-37-missing-signals","run-browser-3#case-37-unexpected-browser-errors","run-browser-3#case-37-complete-goals","run-browser-3#case-37-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 first-boot-full-catalog-once, custom-exercise-one-change-page, other-user-custom-no-request, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L319","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-038-3-0","app-source-current#CASE-038-3-1","app-source-current#CASE-038-3-2","app-source-current#CASE-038-3-3","run-browser-3#case-37-rpc-observers","run-browser-3#case-37-cleanup-completed","run-browser-3#case-37-cleanup-resources","run-browser-3#case-37-listener-owners","run-browser-3#case-37-page-0-pageClosed","run-browser-3#case-37-page-0-routeCleanup","run-browser-3#case-37-page-0-observerDisposal","run-browser-3#case-37-page-0-currentPending","run-browser-3#case-37-page-0-previousDocumentPending","run-browser-3#case-37-checkpoints","run-browser-3#case-37-quality-errors","run-browser-3#case-37-diagnostic-errors","run-browser-3#case-37-missing-signals","run-browser-3#case-37-unexpected-browser-errors","run-browser-3#case-37-complete-goals","run-browser-3#case-37-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 종목 생성과 변경분 완료를 관측한다. 2.5초 대기는 준비 완료 추정이 아닌 reload 뒤 추가 catalog RPC가 없어야 하는 유한 관찰창이다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L151","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L283","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L289","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L290"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 독립 정답 확인: RPC가재전송한시스템종목을별도exercises(owner_user_id=null)조회로검증하고내custom ID만추가허용한다. 최대500ID를64개씩분할해모두검사하므로URL길이상한때문에검사목록을줄이지않는다. 타owner ID배제와latest_seq불변을보존한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L259","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L263","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L265","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L259"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Creating a custom exercise pulls one catalog change page instead of the full catalog, and another user's custom exercise never invalidates my device copy: 실제 완료한 필수 상황·목표 checkpoint는 first-boot-full-catalog-once, custom-exercise-one-change-page, other-user-custom-no-request, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 다른 사용자의 커스텀 종목이 내 변경 피드에 누출되는 소유권 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L151","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L283","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L273","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-038-6-0","app-source-current#CASE-038-6-1","app-source-current#CASE-038-6-2","app-source-current#CASE-038-6-3","run-browser-3#case-37-goal-checkpoints","run-browser-3#case-37-checkpoints","run-browser-3#case-37-quality-errors","run-browser-3#case-37-diagnostic-errors","run-browser-3#case-37-missing-signals","run-browser-3#case-37-unexpected-browser-errors","run-browser-3#case-37-complete-goals","run-browser-3#case-37-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 양방향 타 사용자 종목 제외, 변경 로그 owner, 새로고침 추가 요청 0 및 picker 비노출을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L246","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L265","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L272","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L290","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L297","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L309"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"first-boot-full-catalog-once, custom-exercise-one-change-page, other-user-custom-no-request, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L319","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-038-8-0","app-source-current#CASE-038-8-1","app-source-current#CASE-038-8-2","app-source-current#CASE-038-8-3","run-browser-3#case-37-checkpoints","run-browser-3#case-37-quality-errors","run-browser-3#case-37-diagnostic-errors","run-browser-3#case-37-missing-signals","run-browser-3#case-37-unexpected-browser-errors","run-browser-3#case-37-complete-goals","run-browser-3#case-37-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"다른 사용자 운동이 내 증분 카탈로그에 포함되는 실제 SQL 결함을 정상→기존 목표 단언 실패→원본 복원 정상으로 확인했다. 실제 기대/관측값 불일치·정확한 최초 단언 위치·자동 재시도0·소유 자원 정리·SQL 정의/소유자/ACL 복원을 검증했다. 모든 가능한 결함을 증명하는 뜻은 아니다. 실제 SQL 주입·정확한 첫 예외·복원 readback은 원본 파일에 고정했고, 같은 후보의 공통 판정기 회귀가 미주입/생존/시간초과/다른 예외/정리 실패를 거절한 결과를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L273","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-038-custom-exercise-catalog-incremental-sync/regression.spec.mjs#L264","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L53","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L137"],"evidenceRefs":["case038-owner-normal#goal-matched","case038-owner-normal#goal-expected","case038-owner-normal#goal-actual","case038-owner-normal#goal-target","case038-owner-normal#sql-original","case038-owner-normal#sql-restored","case038-owner-normal#sql-restored-hash","case038-owner-normal#native-first-attempt","case038-owner-normal#native-status","case038-owner-normal#owned-cleanup","case038-owner-normal#cleanup-stage","case038-owner-normal#cleanup-failure","case038-owner-normal#quality-status","case038-owner-mutant#goal-matched","case038-owner-mutant#goal-expected","case038-owner-mutant#goal-actual","case038-owner-mutant#goal-target","case038-owner-mutant#sql-original","case038-owner-mutant#sql-restored","case038-owner-mutant#sql-restored-hash","case038-owner-mutant#native-first-attempt","case038-owner-mutant#native-status","case038-owner-mutant#owned-cleanup","case038-owner-mutant#cleanup-stage","case038-owner-mutant#cleanup-failure","case038-owner-mutant#sql-applied","case038-owner-mutant#native-first-error-location","case038-owner-restored#goal-matched","case038-owner-restored#goal-expected","case038-owner-restored#goal-actual","case038-owner-restored#goal-target","case038-owner-restored#sql-original","case038-owner-restored#sql-restored","case038-owner-restored#sql-restored-hash","case038-owner-restored#native-first-attempt","case038-owner-restored#native-status","case038-owner-restored#owned-cleanup","case038-owner-restored#cleanup-stage","case038-owner-restored#cleanup-failure","case038-owner-restored#quality-status","app-node-93d4cad6#line-3845-helper-regression","app-node-93d4cad6#line-3846-helper-regression","app-node-93d4cad6#line-3846-enforcement-regression","app-node-93d4cad6#line-3847-helper-regression","app-node-93d4cad6#line-3847-enforcement-regression","app-node-93d4cad6#line-3848-helper-regression","app-node-93d4cad6#line-3849-helper-regression","app-node-93d4cad6#line-3863-helper-regression","app-node-93d4cad6#line-3863-enforcement-regression","app-node-93d4cad6#line-3864-helper-regression","app-node-93d4cad6#line-3864-enforcement-regression","app-node-93d4cad6#line-3865-helper-regression","app-node-93d4cad6#line-3865-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-038-10-0","app-source-current#CASE-038-10-1","app-source-current#CASE-038-10-2","app-source-current#CASE-038-10-3","run-browser-3#case-37-rpc-observers","run-browser-3#case-37-cleanup-completed","run-browser-3#case-37-cleanup-resources","run-browser-3#case-37-listener-owners","run-browser-3#case-37-page-0-pageClosed","run-browser-3#case-37-page-0-routeCleanup","run-browser-3#case-37-page-0-observerDisposal","run-browser-3#case-37-page-0-currentPending","run-browser-3#case-37-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 12922ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-038-11-0","app-source-current#CASE-038-11-1","app-source-current#CASE-038-11-2","run-browser-3#case-37-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-038-12-0","app-source-current#CASE-038-12-1","app-source-current#CASE-038-12-2","app-source-current#CASE-038-12-3","run-browser-3#case-37-checkpoints","run-browser-3#case-37-quality-errors","run-browser-3#case-37-diagnostic-errors","run-browser-3#case-37-missing-signals","run-browser-3#case-37-unexpected-browser-errors","run-browser-3#case-37-complete-goals","run-browser-3#case-37-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-038-14-0","app-source-current#CASE-038-14-1","app-source-current#CASE-038-14-2","app-source-current#CASE-038-14-3","run-browser-3#case-37-checkpoints","run-browser-3#case-37-quality-errors","run-browser-3#case-37-diagnostic-errors","run-browser-3#case-37-missing-signals","run-browser-3#case-37-unexpected-browser-errors","run-browser-3#case-37-complete-goals","run-browser-3#case-37-control-records","run-browser-3#case-37-native-status","run-browser-3#case-37-retry","run-browser-3#case-37-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-038-15-0","app-source-current#CASE-038-15-1","app-source-current#CASE-038-15-2","app-source-current#CASE-038-15-3","run-browser-3#case-37-diagnostic-count","run-browser-3#case-37-diagnostic-revision","run-browser-3#case-37-diagnostic-runId","run-browser-3#case-37-diagnostic-attempt","run-browser-3#case-37-diagnostic-project","run-browser-3#case-37-diagnostic-locale","run-browser-3#case-37-diagnostic-timezone","run-browser-3#case-37-diagnostic-startedAt","run-browser-3#case-37-diagnostic-finishedAt","run-browser-3#case-37-diagnostic-cleanupStage","run-browser-3#case-37-diagnostic-status","run-browser-3#case-37-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-039","title":"Legacy tab and new tab share one pending-row store","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L54","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 고정 legacy 번들/새 번들의 공유 IDB pending 정체성·추가 메타 보존·단일 적용을 검사한다. 새 writer 메타는 직접 주입한다고 명시한다. 대표 control의 별도 경계 한계는 #9에 기록한다. legacy는 이전에 배포된 고정 v0.17.1이며 현재 Production 버전이라는 의미가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L164","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L270","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L370","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L389"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:02.931Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 legacy-online-baseline, legacy-edit-queued, new-tab-reads-legacy-row, legacy-touches-row-again, single-server-apply, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/case.json#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-039-2-0","app-source-current#CASE-039-2-1","app-source-current#CASE-039-2-2","app-source-current#CASE-039-2-3","run-browser-4#case-38-diagnostic-count","run-browser-4#case-38-diagnostic-revision","run-browser-4#case-38-diagnostic-runId","run-browser-4#case-38-diagnostic-attempt","run-browser-4#case-38-diagnostic-project","run-browser-4#case-38-diagnostic-locale","run-browser-4#case-38-diagnostic-timezone","run-browser-4#case-38-diagnostic-startedAt","run-browser-4#case-38-diagnostic-finishedAt","run-browser-4#case-38-diagnostic-cleanupStage","run-browser-4#case-38-diagnostic-status","run-browser-4#case-38-diagnostic-sessionDate","run-browser-4#case-38-checkpoints","run-browser-4#case-38-quality-errors","run-browser-4#case-38-diagnostic-errors","run-browser-4#case-38-missing-signals","run-browser-4#case-38-unexpected-browser-errors","run-browser-4#case-38-complete-goals","run-browser-4#case-38-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 legacy-online-baseline, legacy-edit-queued, new-tab-reads-legacy-row, legacy-touches-row-again, single-server-apply, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 8개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L417","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-039-3-0","app-source-current#CASE-039-3-1","app-source-current#CASE-039-3-2","app-source-current#CASE-039-3-3","run-browser-4#case-38-rpc-observers","run-browser-4#case-38-cleanup-completed","run-browser-4#case-38-cleanup-resources","run-browser-4#case-38-listener-owners","run-browser-4#case-38-page-0-pageClosed","run-browser-4#case-38-page-0-routeCleanup","run-browser-4#case-38-page-0-observerDisposal","run-browser-4#case-38-page-0-currentPending","run-browser-4#case-38-page-0-previousDocumentPending","run-browser-4#case-38-page-1-pageClosed","run-browser-4#case-38-page-1-routeCleanup","run-browser-4#case-38-page-1-observerDisposal","run-browser-4#case-38-page-1-currentPending","run-browser-4#case-38-page-1-previousDocumentPending","run-browser-4#case-38-checkpoints","run-browser-4#case-38-quality-errors","run-browser-4#case-38-diagnostic-errors","run-browser-4#case-38-missing-signals","run-browser-4#case-38-unexpected-browser-errors","run-browser-4#case-38-complete-goals","run-browser-4#case-38-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 확인: 실제 두 503·rehydrate gate·요청 횟수를 제어하고, 3초 구간은 새 탭 전송 부재의 유한 관찰창이다. 실제 connectivity probe 사건 사이의 backoff 입력만 진행하며 임의 달력 보정을 제거했다. 실제 완료는 새 실행 대기다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L249","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L307","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L335","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L340","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L383"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 60→80/revision 1→2, 요청 ID/hash/body 불변, 고정 NEW_WRITER_META와 A3/B0을 독립 계약으로 삼는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L254","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L310","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L370","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L384","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L416"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Legacy tab and new tab share one pending-row store: 실제 완료한 필수 상황·목표 checkpoint는 legacy-online-baseline, legacy-edit-queued, new-tab-reads-legacy-row, legacy-touches-row-again, single-server-apply, journey-completion이다. 선언한 실패 completed-session-update-503-legacy-twice:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=4와 누락/위반0도 확인했다. 목표: 새 탭이 옛 pending 행의 알 수 없는 claim 메타를 덮어쓰는 호환성 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L249","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L307","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L335","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L315","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-039-6-0","app-source-current#CASE-039-6-1","app-source-current#CASE-039-6-2","app-source-current#CASE-039-6-3","run-browser-4#case-38-fault-0-id","run-browser-4#case-38-fault-0-method","run-browser-4#case-38-fault-0-path","run-browser-4#case-38-fault-0-status","run-browser-4#case-38-fault-0-requestCount","run-browser-4#case-38-fault-0-requiredAttempts","run-browser-4#case-38-fault-0-observedAttempts","run-browser-4#case-38-fault-0-missingAttempts","run-browser-4#case-38-fault-0-violations","run-browser-4#case-38-required-event-expectedCount","run-browser-4#case-38-required-event-observedCount","run-browser-4#case-38-required-event-missing","run-browser-4#case-38-required-event-violations","run-browser-4#case-38-required-event-0-id","run-browser-4#case-38-required-event-0-operationName","run-browser-4#case-38-required-event-0-receiptStored","run-browser-4#case-38-required-event-0-storedRowVerified","run-browser-4#case-38-required-event-1-id","run-browser-4#case-38-required-event-1-operationName","run-browser-4#case-38-required-event-1-receiptStored","run-browser-4#case-38-required-event-1-storedRowVerified","run-browser-4#case-38-required-event-2-id","run-browser-4#case-38-required-event-2-operationName","run-browser-4#case-38-required-event-2-receiptStored","run-browser-4#case-38-required-event-2-storedRowVerified","run-browser-4#case-38-required-event-3-id","run-browser-4#case-38-required-event-3-operationName","run-browser-4#case-38-required-event-3-receiptStored","run-browser-4#case-38-required-event-3-storedRowVerified","run-browser-4#case-38-goal-checkpoints","run-browser-4#case-38-checkpoints","run-browser-4#case-38-quality-errors","run-browser-4#case-38-diagnostic-errors","run-browser-4#case-38-missing-signals","run-browser-4#case-38-unexpected-browser-errors","run-browser-4#case-38-complete-goals","run-browser-4#case-38-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 새 탭 전송0·unknown metadata 보존·단일 revision 증가·outbox/mirror 비움에 더해, reload 후 저장일의 상세 제목과 80kg×5회가 필수 단언으로 추가됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L406","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L408"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"legacy-online-baseline, legacy-edit-queued, new-tab-reads-legacy-row, legacy-touches-row-again, single-server-apply, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L406","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L417"],"evidenceRefs":["app-source-current#CASE-039-8-0","app-source-current#CASE-039-8-1","run-browser-4#case-38-checkpoints","run-browser-4#case-38-quality-errors","run-browser-4#case-38-diagnostic-errors","run-browser-4#case-38-missing-signals","run-browser-4#case-38-unexpected-browser-errors","run-browser-4#case-38-complete-goals","run-browser-4#case-38-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 새 탭이 옛 pending 행의 알 수 없는 claim 메타를 덮어쓰는 호환성 결함 소유 IndexedDB 행에 대응하는 대표 control 'case039-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-039-legacy-tab-pending-row-coexistence/regression.spec.mjs#L315","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-039-9-0","app-source-current#CASE-039-9-1","run-browser-4#case-38-control-0-normal-value","run-browser-4#case-38-control-0-normal","run-browser-4#case-38-control-0-negative-value","run-browser-4#case-38-control-0-negative","run-browser-4#case-38-control-0-restored-value","run-browser-4#case-38-control-0-restored","run-browser-4#case-38-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 8개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-039-10-0","app-source-current#CASE-039-10-1","app-source-current#CASE-039-10-2","app-source-current#CASE-039-10-3","run-browser-4#case-38-rpc-observers","run-browser-4#case-38-cleanup-completed","run-browser-4#case-38-cleanup-resources","run-browser-4#case-38-listener-owners","run-browser-4#case-38-page-0-pageClosed","run-browser-4#case-38-page-0-routeCleanup","run-browser-4#case-38-page-0-observerDisposal","run-browser-4#case-38-page-0-currentPending","run-browser-4#case-38-page-0-previousDocumentPending","run-browser-4#case-38-page-1-pageClosed","run-browser-4#case-38-page-1-routeCleanup","run-browser-4#case-38-page-1-observerDisposal","run-browser-4#case-38-page-1-currentPending","run-browser-4#case-38-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 19773ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-039-11-0","app-source-current#CASE-039-11-1","app-source-current#CASE-039-11-2","run-browser-4#case-38-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-039-12-0","app-source-current#CASE-039-12-1","app-source-current#CASE-039-12-2","app-source-current#CASE-039-12-3","run-browser-4#case-38-checkpoints","run-browser-4#case-38-quality-errors","run-browser-4#case-38-diagnostic-errors","run-browser-4#case-38-missing-signals","run-browser-4#case-38-unexpected-browser-errors","run-browser-4#case-38-complete-goals","run-browser-4#case-38-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-039-14-0","app-source-current#CASE-039-14-1","app-source-current#CASE-039-14-2","app-source-current#CASE-039-14-3","run-browser-4#case-38-checkpoints","run-browser-4#case-38-quality-errors","run-browser-4#case-38-diagnostic-errors","run-browser-4#case-38-missing-signals","run-browser-4#case-38-unexpected-browser-errors","run-browser-4#case-38-complete-goals","run-browser-4#case-38-control-records","run-browser-4#case-38-native-status","run-browser-4#case-38-retry","run-browser-4#case-38-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-039-15-0","app-source-current#CASE-039-15-1","app-source-current#CASE-039-15-2","app-source-current#CASE-039-15-3","run-browser-4#case-38-diagnostic-count","run-browser-4#case-38-diagnostic-revision","run-browser-4#case-38-diagnostic-runId","run-browser-4#case-38-diagnostic-attempt","run-browser-4#case-38-diagnostic-project","run-browser-4#case-38-diagnostic-locale","run-browser-4#case-38-diagnostic-timezone","run-browser-4#case-38-diagnostic-startedAt","run-browser-4#case-38-diagnostic-finishedAt","run-browser-4#case-38-diagnostic-cleanupStage","run-browser-4#case-38-diagnostic-status","run-browser-4#case-38-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-040","title":"Legacy tab in flight and new tab successor edit","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L56","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 legacy in-flight 행과 새 탭 successor가 공유 IDB에서 공존하고 ACK 뒤 순차 반영되는 목적이다. 대표 control의 별도 경계 한계는 #9에 기록한다. legacy는 이전에 배포된 고정 v0.17.1이며 현재 Production 버전이라는 의미가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L219","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L303","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L336","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L371","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L414"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:30.292Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 new-tab-bootstrap-outage-then-legacy-online-baseline, legacy-edit-in-flight, new-tab-successor-kept, legacy-receipt-keeps-successor, successor-applied-after-predecessor, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L219","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-040-2-0","app-source-current#CASE-040-2-1","app-source-current#CASE-040-2-2","app-source-current#CASE-040-2-3","run-browser-4#case-39-diagnostic-count","run-browser-4#case-39-diagnostic-revision","run-browser-4#case-39-diagnostic-runId","run-browser-4#case-39-diagnostic-attempt","run-browser-4#case-39-diagnostic-project","run-browser-4#case-39-diagnostic-locale","run-browser-4#case-39-diagnostic-timezone","run-browser-4#case-39-diagnostic-startedAt","run-browser-4#case-39-diagnostic-finishedAt","run-browser-4#case-39-diagnostic-cleanupStage","run-browser-4#case-39-diagnostic-status","run-browser-4#case-39-diagnostic-sessionDate","run-browser-4#case-39-checkpoints","run-browser-4#case-39-quality-errors","run-browser-4#case-39-diagnostic-errors","run-browser-4#case-39-missing-signals","run-browser-4#case-39-unexpected-browser-errors","run-browser-4#case-39-complete-goals","run-browser-4#case-39-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 new-tab-bootstrap-outage-then-legacy-online-baseline, legacy-edit-in-flight, new-tab-successor-kept, legacy-receipt-keeps-successor, successor-applied-after-predecessor, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 9개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L451","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-040-3-0","app-source-current#CASE-040-3-1","app-source-current#CASE-040-3-2","app-source-current#CASE-040-3-3","run-browser-4#case-39-rpc-observers","run-browser-4#case-39-cleanup-completed","run-browser-4#case-39-cleanup-resources","run-browser-4#case-39-listener-owners","run-browser-4#case-39-page-0-pageClosed","run-browser-4#case-39-page-0-routeCleanup","run-browser-4#case-39-page-0-observerDisposal","run-browser-4#case-39-page-0-currentPending","run-browser-4#case-39-page-0-previousDocumentPending","run-browser-4#case-39-page-1-pageClosed","run-browser-4#case-39-page-1-routeCleanup","run-browser-4#case-39-page-1-observerDisposal","run-browser-4#case-39-page-1-currentPending","run-browser-4#case-39-page-1-previousDocumentPending","run-browser-4#case-39-checkpoints","run-browser-4#case-39-quality-errors","run-browser-4#case-39-diagnostic-errors","run-browser-4#case-39-missing-signals","run-browser-4#case-39-unexpected-browser-errors","run-browser-4#case-39-complete-goals","run-browser-4#case-39-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 선행 요청 보류/해제와 실제 ACK·DB revision·successor 생존을 순서로 묶는다. 1초는 후속 전송 부재의 유한 관찰창이다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L303","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L345","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L357","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L371","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L390"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 60→80→90, revision 1→2→3, 2개 pending→successor 1개→0, 새 mutation ID와 요청 본문 불변으로 판정한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L307","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L336","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L364","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L371","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L398","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L405","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L414"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"Legacy tab in flight and new tab successor edit: 실제 완료한 필수 상황·목표 checkpoint는 new-tab-bootstrap-outage-then-legacy-online-baseline, legacy-edit-in-flight, new-tab-successor-kept, legacy-receipt-keeps-successor, successor-applied-after-predecessor, journey-completion이다. 선언한 실패 new-tab-bootstrap-503-twice:POST /rest/v1/rpc/get_profile_workspace; successor-stale-revision-conflict:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=2와 누락/위반0도 확인했다. 목표: 옛 탭 ACK가 새 successor 행까지 삭제하는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L303","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L345","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L357","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L374","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-040-6-0","app-source-current#CASE-040-6-1","app-source-current#CASE-040-6-2","app-source-current#CASE-040-6-3","run-browser-4#case-39-fault-0-id","run-browser-4#case-39-fault-0-method","run-browser-4#case-39-fault-0-path","run-browser-4#case-39-fault-0-status","run-browser-4#case-39-fault-0-requestCount","run-browser-4#case-39-fault-0-requiredAttempts","run-browser-4#case-39-fault-0-observedAttempts","run-browser-4#case-39-fault-0-missingAttempts","run-browser-4#case-39-fault-0-violations","run-browser-4#case-39-fault-1-id","run-browser-4#case-39-fault-1-method","run-browser-4#case-39-fault-1-path","run-browser-4#case-39-fault-1-status","run-browser-4#case-39-fault-1-requestCount","run-browser-4#case-39-fault-1-requiredAttempts","run-browser-4#case-39-fault-1-observedAttempts","run-browser-4#case-39-fault-1-missingAttempts","run-browser-4#case-39-fault-1-violations","run-browser-4#case-39-required-event-expectedCount","run-browser-4#case-39-required-event-observedCount","run-browser-4#case-39-required-event-missing","run-browser-4#case-39-required-event-violations","run-browser-4#case-39-required-event-0-id","run-browser-4#case-39-required-event-0-operationName","run-browser-4#case-39-required-event-0-receiptStored","run-browser-4#case-39-required-event-0-storedRowVerified","run-browser-4#case-39-required-event-1-id","run-browser-4#case-39-required-event-1-operationName","run-browser-4#case-39-required-event-1-receiptStored","run-browser-4#case-39-required-event-1-storedRowVerified","run-browser-4#case-39-goal-checkpoints","run-browser-4#case-39-checkpoints","run-browser-4#case-39-quality-errors","run-browser-4#case-39-diagnostic-errors","run-browser-4#case-39-missing-signals","run-browser-4#case-39-unexpected-browser-errors","run-browser-4#case-39-complete-goals","run-browser-4#case-39-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 선행 ACK·successor 생존·충돌400→200·revision3에 더해 새 탭과 legacy 탭 각각 reload 후 저장일의 제목과 90kg×5회 상세를 확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L425","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L438"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"new-tab-bootstrap-outage-then-legacy-online-baseline, legacy-edit-in-flight, new-tab-successor-kept, legacy-receipt-keeps-successor, successor-applied-after-predecessor, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L425","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L438","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L451"],"evidenceRefs":["app-source-current#CASE-040-8-0","app-source-current#CASE-040-8-1","app-source-current#CASE-040-8-2","run-browser-4#case-39-checkpoints","run-browser-4#case-39-quality-errors","run-browser-4#case-39-diagnostic-errors","run-browser-4#case-39-missing-signals","run-browser-4#case-39-unexpected-browser-errors","run-browser-4#case-39-complete-goals","run-browser-4#case-39-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 옛 탭 ACK가 새 successor 행까지 삭제하는 결함 소유 IndexedDB 행에 대응하는 대표 control 'case040-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-040-legacy-tab-in-flight-new-tab-successor/regression.spec.mjs#L374","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-040-9-0","app-source-current#CASE-040-9-1","run-browser-4#case-39-control-0-normal-value","run-browser-4#case-39-control-0-normal","run-browser-4#case-39-control-0-negative-value","run-browser-4#case-39-control-0-negative","run-browser-4#case-39-control-0-restored-value","run-browser-4#case-39-control-0-restored","run-browser-4#case-39-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 9개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-040-10-0","app-source-current#CASE-040-10-1","app-source-current#CASE-040-10-2","app-source-current#CASE-040-10-3","run-browser-4#case-39-rpc-observers","run-browser-4#case-39-cleanup-completed","run-browser-4#case-39-cleanup-resources","run-browser-4#case-39-listener-owners","run-browser-4#case-39-page-0-pageClosed","run-browser-4#case-39-page-0-routeCleanup","run-browser-4#case-39-page-0-observerDisposal","run-browser-4#case-39-page-0-currentPending","run-browser-4#case-39-page-0-previousDocumentPending","run-browser-4#case-39-page-1-pageClosed","run-browser-4#case-39-page-1-routeCleanup","run-browser-4#case-39-page-1-observerDisposal","run-browser-4#case-39-page-1-currentPending","run-browser-4#case-39-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 17329ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-040-11-0","app-source-current#CASE-040-11-1","app-source-current#CASE-040-11-2","run-browser-4#case-39-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-040-12-0","app-source-current#CASE-040-12-1","app-source-current#CASE-040-12-2","app-source-current#CASE-040-12-3","run-browser-4#case-39-checkpoints","run-browser-4#case-39-quality-errors","run-browser-4#case-39-diagnostic-errors","run-browser-4#case-39-missing-signals","run-browser-4#case-39-unexpected-browser-errors","run-browser-4#case-39-complete-goals","run-browser-4#case-39-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-040-14-0","app-source-current#CASE-040-14-1","app-source-current#CASE-040-14-2","app-source-current#CASE-040-14-3","run-browser-4#case-39-checkpoints","run-browser-4#case-39-quality-errors","run-browser-4#case-39-diagnostic-errors","run-browser-4#case-39-missing-signals","run-browser-4#case-39-unexpected-browser-errors","run-browser-4#case-39-complete-goals","run-browser-4#case-39-control-records","run-browser-4#case-39-native-status","run-browser-4#case-39-retry","run-browser-4#case-39-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-040-15-0","app-source-current#CASE-040-15-1","app-source-current#CASE-040-15-2","app-source-current#CASE-040-15-3","run-browser-4#case-39-diagnostic-count","run-browser-4#case-39-diagnostic-revision","run-browser-4#case-39-diagnostic-runId","run-browser-4#case-39-diagnostic-attempt","run-browser-4#case-39-diagnostic-project","run-browser-4#case-39-diagnostic-locale","run-browser-4#case-39-diagnostic-timezone","run-browser-4#case-39-diagnostic-startedAt","run-browser-4#case-39-diagnostic-finishedAt","run-browser-4#case-39-diagnostic-cleanupStage","run-browser-4#case-39-diagnostic-status","run-browser-4#case-39-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-041","title":"committed create edit and delete retry the identical mutation without applying twice","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L12","checks":{"1":{"status":"P","reason":"정적 의미 확인: 생성·수정·삭제를 실제 서버 commit한 뒤 ACK만 잃게 하여 같은 mutation 재전송의 단일 적용을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L83","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L102"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:17.406Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-041-2-0","app-source-current#CASE-041-2-1","app-source-current#CASE-041-2-2","app-source-current#CASE-041-2-3","run-browser-3#case-40-diagnostic-count","run-browser-3#case-40-diagnostic-revision","run-browser-3#case-40-diagnostic-runId","run-browser-3#case-40-diagnostic-attempt","run-browser-3#case-40-diagnostic-project","run-browser-3#case-40-diagnostic-locale","run-browser-3#case-40-diagnostic-timezone","run-browser-3#case-40-diagnostic-startedAt","run-browser-3#case-40-diagnostic-finishedAt","run-browser-3#case-40-diagnostic-cleanupStage","run-browser-3#case-40-diagnostic-status","run-browser-3#case-40-diagnostic-sessionDate","run-browser-3#case-40-checkpoints","run-browser-3#case-40-quality-errors","run-browser-3#case-40-diagnostic-errors","run-browser-3#case-40-missing-signals","run-browser-3#case-40-unexpected-browser-errors","run-browser-3#case-40-complete-goals","run-browser-3#case-40-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-041-3-0","app-source-current#CASE-041-3-1","app-source-current#CASE-041-3-2","app-source-current#CASE-041-3-3","run-browser-3#case-40-rpc-observers","run-browser-3#case-40-cleanup-completed","run-browser-3#case-40-cleanup-resources","run-browser-3#case-40-listener-owners","run-browser-3#case-40-page-0-pageClosed","run-browser-3#case-40-page-0-routeCleanup","run-browser-3#case-40-page-0-observerDisposal","run-browser-3#case-40-page-0-currentPending","run-browser-3#case-40-page-0-previousDocumentPending","run-browser-3#case-40-checkpoints","run-browser-3#case-40-quality-errors","run-browser-3#case-40-diagnostic-errors","run-browser-3#case-40-missing-signals","run-browser-3#case-40-unexpected-browser-errors","run-browser-3#case-40-complete-goals","run-browser-3#case-40-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: route.fetch 성공과 실제 receipt 존재 후 503을 전달하고 recovery gate 관측 뒤 재전송을 허용한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L66"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 사전 receipt 불변은 재전송 불변식이고, 60/rev1→80/rev2→삭제 및 각 전송 2회는 별도 상수 단언이다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L96","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L117"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"committed create edit and delete retry the identical mutation without applying twice: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3이다. 선언한 실패 create-ack-lost:POST /rest/v1/rpc/save_session_v5; edit-ack-lost:POST /rest/v1/rpc/save_session_v5; delete-ack-lost:POST /rest/v1/rpc/delete_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=6와 누락/위반0도 확인했다. 목표: 동일 mutation 재전송이 최초 commit 영수증 revision을 다시 바꾸는 이중 적용 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-041-6-0","app-source-current#CASE-041-6-1","app-source-current#CASE-041-6-2","app-source-current#CASE-041-6-3","run-browser-3#case-40-fault-0-id","run-browser-3#case-40-fault-0-method","run-browser-3#case-40-fault-0-path","run-browser-3#case-40-fault-0-status","run-browser-3#case-40-fault-0-requestCount","run-browser-3#case-40-fault-0-requiredAttempts","run-browser-3#case-40-fault-0-observedAttempts","run-browser-3#case-40-fault-0-missingAttempts","run-browser-3#case-40-fault-0-violations","run-browser-3#case-40-fault-1-id","run-browser-3#case-40-fault-1-method","run-browser-3#case-40-fault-1-path","run-browser-3#case-40-fault-1-status","run-browser-3#case-40-fault-1-requestCount","run-browser-3#case-40-fault-1-requiredAttempts","run-browser-3#case-40-fault-1-observedAttempts","run-browser-3#case-40-fault-1-missingAttempts","run-browser-3#case-40-fault-1-violations","run-browser-3#case-40-fault-2-id","run-browser-3#case-40-fault-2-method","run-browser-3#case-40-fault-2-path","run-browser-3#case-40-fault-2-status","run-browser-3#case-40-fault-2-requestCount","run-browser-3#case-40-fault-2-requiredAttempts","run-browser-3#case-40-fault-2-observedAttempts","run-browser-3#case-40-fault-2-missingAttempts","run-browser-3#case-40-fault-2-violations","run-browser-3#case-40-required-event-expectedCount","run-browser-3#case-40-required-event-observedCount","run-browser-3#case-40-required-event-missing","run-browser-3#case-40-required-event-violations","run-browser-3#case-40-required-event-0-id","run-browser-3#case-40-required-event-0-operationName","run-browser-3#case-40-required-event-0-receiptStored","run-browser-3#case-40-required-event-0-storedRowVerified","run-browser-3#case-40-required-event-1-id","run-browser-3#case-40-required-event-1-operationName","run-browser-3#case-40-required-event-1-receiptStored","run-browser-3#case-40-required-event-1-storedRowVerified","run-browser-3#case-40-required-event-2-id","run-browser-3#case-40-required-event-2-operationName","run-browser-3#case-40-required-event-2-receiptStored","run-browser-3#case-40-required-event-2-storedRowVerified","run-browser-3#case-40-required-event-3-id","run-browser-3#case-40-required-event-3-operationName","run-browser-3#case-40-required-event-3-receiptStored","run-browser-3#case-40-required-event-3-storedRowVerified","run-browser-3#case-40-required-event-4-id","run-browser-3#case-40-required-event-4-operationName","run-browser-3#case-40-required-event-4-receiptStored","run-browser-3#case-40-required-event-4-storedRowVerified","run-browser-3#case-40-required-event-5-id","run-browser-3#case-40-required-event-5-operationName","run-browser-3#case-40-required-event-5-receiptStored","run-browser-3#case-40-required-event-5-storedRowVerified","run-browser-3#case-40-goal-checkpoints","run-browser-3#case-40-checkpoints","run-browser-3#case-40-quality-errors","run-browser-3#case-40-diagnostic-errors","run-browser-3#case-40-missing-signals","run-browser-3#case-40-unexpected-browser-errors","run-browser-3#case-40-complete-goals","run-browser-3#case-40-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 세 mutation의 같은 body 재전송, 서버/receipt 단일성, outbox 비움과 edit reload 값을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L68","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L117"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/case.json#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-041-8-0","app-source-current#CASE-041-8-1","app-source-current#CASE-041-8-2","app-source-current#CASE-041-8-3","run-browser-3#case-40-checkpoints","run-browser-3#case-40-quality-errors","run-browser-3#case-40-diagnostic-errors","run-browser-3#case-40-missing-signals","run-browser-3#case-40-unexpected-browser-errors","run-browser-3#case-40-complete-goals","run-browser-3#case-40-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"이미 반영한 create mutation의 재전송이 실제 session revision을 다시 증가시키는 SQL 결함을 정상→기존 목표 단언 실패→원본 복원 정상으로 확인했다. 실제 기대/관측값 불일치·정확한 최초 단언 위치·자동 재시도0·소유 자원 정리·SQL 정의/소유자/ACL 복원을 검증했다. 모든 가능한 결함을 증명하는 뜻은 아니다. 실제 SQL 주입·정확한 첫 예외·복원 readback은 원본 파일에 고정했고, 같은 후보의 공통 판정기 회귀가 미주입/생존/시간초과/다른 예외/정리 실패를 거절한 결과를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-041-committed-write-lost-ack/regression.spec.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L137"],"evidenceRefs":["case041-replay-normal#goal-matched","case041-replay-normal#goal-expected","case041-replay-normal#goal-actual","case041-replay-normal#goal-target","case041-replay-normal#sql-original","case041-replay-normal#sql-restored","case041-replay-normal#sql-restored-hash","case041-replay-normal#native-first-attempt","case041-replay-normal#native-status","case041-replay-normal#owned-cleanup","case041-replay-normal#cleanup-stage","case041-replay-normal#cleanup-failure","case041-replay-normal#quality-status","case041-replay-mutant#goal-matched","case041-replay-mutant#goal-expected","case041-replay-mutant#goal-actual","case041-replay-mutant#goal-target","case041-replay-mutant#sql-original","case041-replay-mutant#sql-restored","case041-replay-mutant#sql-restored-hash","case041-replay-mutant#native-first-attempt","case041-replay-mutant#native-status","case041-replay-mutant#owned-cleanup","case041-replay-mutant#cleanup-stage","case041-replay-mutant#cleanup-failure","case041-replay-mutant#sql-applied","case041-replay-mutant#native-first-error-location","case041-replay-restored#goal-matched","case041-replay-restored#goal-expected","case041-replay-restored#goal-actual","case041-replay-restored#goal-target","case041-replay-restored#sql-original","case041-replay-restored#sql-restored","case041-replay-restored#sql-restored-hash","case041-replay-restored#native-first-attempt","case041-replay-restored#native-status","case041-replay-restored#owned-cleanup","case041-replay-restored#cleanup-stage","case041-replay-restored#cleanup-failure","case041-replay-restored#quality-status","app-node-93d4cad6#line-3845-helper-regression","app-node-93d4cad6#line-3846-helper-regression","app-node-93d4cad6#line-3846-enforcement-regression","app-node-93d4cad6#line-3847-helper-regression","app-node-93d4cad6#line-3847-enforcement-regression","app-node-93d4cad6#line-3848-helper-regression","app-node-93d4cad6#line-3849-helper-regression","app-node-93d4cad6#line-3863-helper-regression","app-node-93d4cad6#line-3863-enforcement-regression","app-node-93d4cad6#line-3864-helper-regression","app-node-93d4cad6#line-3864-enforcement-regression","app-node-93d4cad6#line-3865-helper-regression","app-node-93d4cad6#line-3865-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-041-10-0","app-source-current#CASE-041-10-1","app-source-current#CASE-041-10-2","app-source-current#CASE-041-10-3","run-browser-3#case-40-rpc-observers","run-browser-3#case-40-cleanup-completed","run-browser-3#case-40-cleanup-resources","run-browser-3#case-40-listener-owners","run-browser-3#case-40-page-0-pageClosed","run-browser-3#case-40-page-0-routeCleanup","run-browser-3#case-40-page-0-observerDisposal","run-browser-3#case-40-page-0-currentPending","run-browser-3#case-40-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 17127ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-041-11-0","app-source-current#CASE-041-11-1","app-source-current#CASE-041-11-2","run-browser-3#case-40-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-041-12-0","app-source-current#CASE-041-12-1","app-source-current#CASE-041-12-2","app-source-current#CASE-041-12-3","run-browser-3#case-40-checkpoints","run-browser-3#case-40-quality-errors","run-browser-3#case-40-diagnostic-errors","run-browser-3#case-40-missing-signals","run-browser-3#case-40-unexpected-browser-errors","run-browser-3#case-40-complete-goals","run-browser-3#case-40-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-041-14-0","app-source-current#CASE-041-14-1","app-source-current#CASE-041-14-2","app-source-current#CASE-041-14-3","run-browser-3#case-40-checkpoints","run-browser-3#case-40-quality-errors","run-browser-3#case-40-diagnostic-errors","run-browser-3#case-40-missing-signals","run-browser-3#case-40-unexpected-browser-errors","run-browser-3#case-40-complete-goals","run-browser-3#case-40-control-records","run-browser-3#case-40-native-status","run-browser-3#case-40-retry","run-browser-3#case-40-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-041-15-0","app-source-current#CASE-041-15-1","app-source-current#CASE-041-15-2","app-source-current#CASE-041-15-3","run-browser-3#case-40-diagnostic-count","run-browser-3#case-40-diagnostic-revision","run-browser-3#case-40-diagnostic-runId","run-browser-3#case-40-diagnostic-attempt","run-browser-3#case-40-diagnostic-project","run-browser-3#case-40-diagnostic-locale","run-browser-3#case-40-diagnostic-timezone","run-browser-3#case-40-diagnostic-startedAt","run-browser-3#case-40-diagnostic-finishedAt","run-browser-3#case-40-diagnostic-cleanupStage","run-browser-3#case-40-diagnostic-status","run-browser-3#case-40-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-042","title":"a real sending row survives page death and its expired send is replayed by the next boot","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L10","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 sending 행이 페이지 종료를 넘어 남고 실제 TTL 후 새 페이지가 같은 요청을 한 번 반영하는 경계다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L53","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L114"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:34.670Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-042-2-0","app-source-current#CASE-042-2-1","app-source-current#CASE-042-2-2","app-source-current#CASE-042-2-3","run-browser-3#case-41-diagnostic-count","run-browser-3#case-41-diagnostic-revision","run-browser-3#case-41-diagnostic-runId","run-browser-3#case-41-diagnostic-attempt","run-browser-3#case-41-diagnostic-project","run-browser-3#case-41-diagnostic-locale","run-browser-3#case-41-diagnostic-timezone","run-browser-3#case-41-diagnostic-startedAt","run-browser-3#case-41-diagnostic-finishedAt","run-browser-3#case-41-diagnostic-cleanupStage","run-browser-3#case-41-diagnostic-status","run-browser-3#case-41-diagnostic-sessionDate","run-browser-3#case-41-checkpoints","run-browser-3#case-41-quality-errors","run-browser-3#case-41-diagnostic-errors","run-browser-3#case-41-missing-signals","run-browser-3#case-41-unexpected-browser-errors","run-browser-3#case-41-complete-goals","run-browser-3#case-41-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3 완료를 대조했다. 이 CASE의 정리 resource 4개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L130","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-042-3-0","app-source-current#CASE-042-3-1","app-source-current#CASE-042-3-2","app-source-current#CASE-042-3-3","run-browser-3#case-41-rpc-observers","run-browser-3#case-41-cleanup-completed","run-browser-3#case-41-cleanup-resources","run-browser-3#case-41-listener-owners","run-browser-3#case-41-page-0-pageClosed","run-browser-3#case-41-page-0-routeCleanup","run-browser-3#case-41-page-0-observerDisposal","run-browser-3#case-41-page-0-currentPending","run-browser-3#case-41-page-0-previousDocumentPending","run-browser-3#case-41-page-1-pageClosed","run-browser-3#case-41-page-1-routeCleanup","run-browser-3#case-41-page-1-observerDisposal","run-browser-3#case-41-page-1-currentPending","run-browser-3#case-41-page-1-previousDocumentPending","run-browser-3#case-41-checkpoints","run-browser-3#case-41-quality-errors","run-browser-3#case-41-diagnostic-errors","run-browser-3#case-41-missing-signals","run-browser-3#case-41-unexpected-browser-errors","run-browser-3#case-41-complete-goals","run-browser-3#case-41-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 확인: 원래 sending row의 sentAt+10001ms 실제 만료 사건을 계산하고 최초 하나의 10초 deadline 안에서 기다린 뒤 기존 age>10000 단언을 실행한다. 반복 polling 끝 샘플이 9984ms여서 거짓 실패하던 관찰 방식은 제거했고 TTL/날짜/timeout을 상향하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L59","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L71"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 종료 전 요청 ID/hash/body 불변과 고정 60kg×5/rev1, session·receipt 1개를 함께 확인한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L90","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L122"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"a real sending row survives page death and its expired send is replayed by the next boot: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 페이지 사망 뒤 복원된 pending 요청의 원래 입력이 변하는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L53","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-042-6-0","app-source-current#CASE-042-6-1","app-source-current#CASE-042-6-2","app-source-current#CASE-042-6-3","run-browser-3#case-41-goal-checkpoints","run-browser-3#case-41-checkpoints","run-browser-3#case-41-quality-errors","run-browser-3#case-41-diagnostic-errors","run-browser-3#case-41-missing-signals","run-browser-3#case-41-unexpected-browser-errors","run-browser-3#case-41-complete-goals","run-browser-3#case-41-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 죽은 페이지의 서버 미저장, 재시작 요청 불변, 빈 outbox와 단일 기록·receipt·상세 값을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L125"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L130","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-042-8-0","app-source-current#CASE-042-8-1","app-source-current#CASE-042-8-2","app-source-current#CASE-042-8-3","run-browser-3#case-41-checkpoints","run-browser-3#case-41-quality-errors","run-browser-3#case-41-diagnostic-errors","run-browser-3#case-41-missing-signals","run-browser-3#case-41-unexpected-browser-errors","run-browser-3#case-41-complete-goals","run-browser-3#case-41-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 페이지 사망 뒤 복원된 pending 요청의 원래 입력이 변하는 결함 소유 IndexedDB 행에 대응하는 대표 control 'case042-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-042-pending-write-browser-restart/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-042-9-0","app-source-current#CASE-042-9-1","run-browser-3#case-41-control-0-normal-value","run-browser-3#case-41-control-0-normal","run-browser-3#case-41-control-0-negative-value","run-browser-3#case-41-control-0-negative","run-browser-3#case-41-control-0-restored-value","run-browser-3#case-41-control-0-restored","run-browser-3#case-41-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 4개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-042-10-0","app-source-current#CASE-042-10-1","app-source-current#CASE-042-10-2","app-source-current#CASE-042-10-3","run-browser-3#case-41-rpc-observers","run-browser-3#case-41-cleanup-completed","run-browser-3#case-41-cleanup-resources","run-browser-3#case-41-listener-owners","run-browser-3#case-41-page-0-pageClosed","run-browser-3#case-41-page-0-routeCleanup","run-browser-3#case-41-page-0-observerDisposal","run-browser-3#case-41-page-0-currentPending","run-browser-3#case-41-page-0-previousDocumentPending","run-browser-3#case-41-page-1-pageClosed","run-browser-3#case-41-page-1-routeCleanup","run-browser-3#case-41-page-1-observerDisposal","run-browser-3#case-41-page-1-currentPending","run-browser-3#case-41-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 15201ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-042-11-0","app-source-current#CASE-042-11-1","app-source-current#CASE-042-11-2","run-browser-3#case-41-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-042-12-0","app-source-current#CASE-042-12-1","app-source-current#CASE-042-12-2","app-source-current#CASE-042-12-3","run-browser-3#case-41-checkpoints","run-browser-3#case-41-quality-errors","run-browser-3#case-41-diagnostic-errors","run-browser-3#case-41-missing-signals","run-browser-3#case-41-unexpected-browser-errors","run-browser-3#case-41-complete-goals","run-browser-3#case-41-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-042-14-0","app-source-current#CASE-042-14-1","app-source-current#CASE-042-14-2","app-source-current#CASE-042-14-3","run-browser-3#case-41-checkpoints","run-browser-3#case-41-quality-errors","run-browser-3#case-41-diagnostic-errors","run-browser-3#case-41-missing-signals","run-browser-3#case-41-unexpected-browser-errors","run-browser-3#case-41-complete-goals","run-browser-3#case-41-control-records","run-browser-3#case-41-native-status","run-browser-3#case-41-retry","run-browser-3#case-41-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-042-15-0","app-source-current#CASE-042-15-1","app-source-current#CASE-042-15-2","app-source-current#CASE-042-15-3","run-browser-3#case-41-diagnostic-count","run-browser-3#case-41-diagnostic-revision","run-browser-3#case-41-diagnostic-runId","run-browser-3#case-41-diagnostic-attempt","run-browser-3#case-41-diagnostic-project","run-browser-3#case-41-diagnostic-locale","run-browser-3#case-41-diagnostic-timezone","run-browser-3#case-41-diagnostic-startedAt","run-browser-3#case-41-diagnostic-finishedAt","run-browser-3#case-41-diagnostic-cleanupStage","run-browser-3#case-41-diagnostic-status","run-browser-3#case-41-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-043","title":"the real server rejects an expired signed JWT and the same owner reauthenticates to resume the held mutation","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L11","checks":{"1":{"status":"P","reason":"정적 의미 확인: 로컬 서명 만료 JWT의 실제 서버 거절 뒤 동일 owner 재인증이 held 요청을 보존·업로드하는 범위다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L50","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L79"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:50.014Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-043-2-0","app-source-current#CASE-043-2-1","app-source-current#CASE-043-2-2","app-source-current#CASE-043-2-3","run-browser-3#case-42-diagnostic-count","run-browser-3#case-42-diagnostic-revision","run-browser-3#case-42-diagnostic-runId","run-browser-3#case-42-diagnostic-attempt","run-browser-3#case-42-diagnostic-project","run-browser-3#case-42-diagnostic-locale","run-browser-3#case-42-diagnostic-timezone","run-browser-3#case-42-diagnostic-startedAt","run-browser-3#case-42-diagnostic-finishedAt","run-browser-3#case-42-diagnostic-cleanupStage","run-browser-3#case-42-diagnostic-status","run-browser-3#case-42-diagnostic-sessionDate","run-browser-3#case-42-checkpoints","run-browser-3#case-42-quality-errors","run-browser-3#case-42-diagnostic-errors","run-browser-3#case-42-missing-signals","run-browser-3#case-42-unexpected-browser-errors","run-browser-3#case-42-complete-goals","run-browser-3#case-42-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-043-3-0","app-source-current#CASE-043-3-1","app-source-current#CASE-043-3-2","app-source-current#CASE-043-3-3","run-browser-3#case-42-rpc-observers","run-browser-3#case-42-cleanup-completed","run-browser-3#case-42-cleanup-resources","run-browser-3#case-42-listener-owners","run-browser-3#case-42-page-0-pageClosed","run-browser-3#case-42-page-0-routeCleanup","run-browser-3#case-42-page-0-observerDisposal","run-browser-3#case-42-page-0-currentPending","run-browser-3#case-42-page-0-previousDocumentPending","run-browser-3#case-42-page-1-pageClosed","run-browser-3#case-42-page-1-routeCleanup","run-browser-3#case-42-page-1-observerDisposal","run-browser-3#case-42-page-1-currentPending","run-browser-3#case-42-page-1-previousDocumentPending","run-browser-3#case-42-checkpoints","run-browser-3#case-42-quality-errors","run-browser-3#case-42-diagnostic-errors","run-browser-3#case-42-missing-signals","run-browser-3#case-42-unexpected-browser-errors","run-browser-3#case-42-complete-goals","run-browser-3#case-42-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 첫 요청에 실제 서명 만료 토큰을 보내고 서버 오류·held 상태 확인 후 새 인증 및 resume gate를 해제한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L50","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L101"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 정확 401/PGRST303 expired 및 owner ID, 원래 immutable request, 60kg×5/rev1을 독립 비교한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L80","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L115"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"the real server rejects an expired signed JWT and the same owner reauthenticates to resume the held mutation: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3이다. 선언한 실패 expired-jwt-write:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 목표: 같은 사용자 재인증 뒤 held 요청의 원래 입력이 유실되는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L50","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-043-6-0","app-source-current#CASE-043-6-1","app-source-current#CASE-043-6-2","app-source-current#CASE-043-6-3","run-browser-3#case-42-fault-0-id","run-browser-3#case-42-fault-0-method","run-browser-3#case-42-fault-0-path","run-browser-3#case-42-fault-0-status","run-browser-3#case-42-fault-0-requestCount","run-browser-3#case-42-fault-0-requiredAttempts","run-browser-3#case-42-fault-0-observedAttempts","run-browser-3#case-42-fault-0-missingAttempts","run-browser-3#case-42-fault-0-violations","run-browser-3#case-42-goal-checkpoints","run-browser-3#case-42-checkpoints","run-browser-3#case-42-quality-errors","run-browser-3#case-42-diagnostic-errors","run-browser-3#case-42-missing-signals","run-browser-3#case-42-unexpected-browser-errors","run-browser-3#case-42-complete-goals","run-browser-3#case-42-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 만료 상태의 서버/receipt 없음, 새 토큰 동일 owner, 원래 request 재생·단일 receipt/record·재진입을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L59","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L66","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L106","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L115"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/case.json#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-043-8-0","app-source-current#CASE-043-8-1","app-source-current#CASE-043-8-2","app-source-current#CASE-043-8-3","run-browser-3#case-42-checkpoints","run-browser-3#case-42-quality-errors","run-browser-3#case-42-diagnostic-errors","run-browser-3#case-42-missing-signals","run-browser-3#case-42-unexpected-browser-errors","run-browser-3#case-42-complete-goals","run-browser-3#case-42-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 같은 사용자 재인증 뒤 held 요청의 원래 입력이 유실되는 결함 소유 IndexedDB 행에 대응하는 대표 control 'case043-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-043-expired-jwt-held-recovery/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-043-9-0","app-source-current#CASE-043-9-1","run-browser-3#case-42-control-0-normal-value","run-browser-3#case-42-control-0-normal","run-browser-3#case-42-control-0-negative-value","run-browser-3#case-42-control-0-negative","run-browser-3#case-42-control-0-restored-value","run-browser-3#case-42-control-0-restored","run-browser-3#case-42-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-043-10-0","app-source-current#CASE-043-10-1","app-source-current#CASE-043-10-2","app-source-current#CASE-043-10-3","run-browser-3#case-42-rpc-observers","run-browser-3#case-42-cleanup-completed","run-browser-3#case-42-cleanup-resources","run-browser-3#case-42-listener-owners","run-browser-3#case-42-page-0-pageClosed","run-browser-3#case-42-page-0-routeCleanup","run-browser-3#case-42-page-0-observerDisposal","run-browser-3#case-42-page-0-currentPending","run-browser-3#case-42-page-0-previousDocumentPending","run-browser-3#case-42-page-1-pageClosed","run-browser-3#case-42-page-1-routeCleanup","run-browser-3#case-42-page-1-observerDisposal","run-browser-3#case-42-page-1-currentPending","run-browser-3#case-42-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6885ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-043-11-0","app-source-current#CASE-043-11-1","app-source-current#CASE-043-11-2","run-browser-3#case-42-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-043-12-0","app-source-current#CASE-043-12-1","app-source-current#CASE-043-12-2","app-source-current#CASE-043-12-3","run-browser-3#case-42-checkpoints","run-browser-3#case-42-quality-errors","run-browser-3#case-42-diagnostic-errors","run-browser-3#case-42-missing-signals","run-browser-3#case-42-unexpected-browser-errors","run-browser-3#case-42-complete-goals","run-browser-3#case-42-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-043-14-0","app-source-current#CASE-043-14-1","app-source-current#CASE-043-14-2","app-source-current#CASE-043-14-3","run-browser-3#case-42-checkpoints","run-browser-3#case-42-quality-errors","run-browser-3#case-42-diagnostic-errors","run-browser-3#case-42-missing-signals","run-browser-3#case-42-unexpected-browser-errors","run-browser-3#case-42-complete-goals","run-browser-3#case-42-control-records","run-browser-3#case-42-native-status","run-browser-3#case-42-retry","run-browser-3#case-42-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-043-15-0","app-source-current#CASE-043-15-1","app-source-current#CASE-043-15-2","app-source-current#CASE-043-15-3","run-browser-3#case-42-diagnostic-count","run-browser-3#case-42-diagnostic-revision","run-browser-3#case-42-diagnostic-runId","run-browser-3#case-42-diagnostic-attempt","run-browser-3#case-42-diagnostic-project","run-browser-3#case-42-diagnostic-locale","run-browser-3#case-42-diagnostic-timezone","run-browser-3#case-42-diagnostic-startedAt","run-browser-3#case-42-diagnostic-finishedAt","run-browser-3#case-42-diagnostic-cleanupStage","run-browser-3#case-42-diagnostic-status","run-browser-3#case-42-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-044","title":"A pending data stays private while B saves and only A reentry uploads A request","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L11","checks":{"1":{"status":"P","reason":"정적 의미 확인: A held 데이터를 공유 기기에 남긴 채 B 로그인/저장과 A 재진입을 비교하여 UI·전송·서버 owner 격리를 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L94","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L144"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:57.029Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-044-2-0","app-source-current#CASE-044-2-1","app-source-current#CASE-044-2-2","app-source-current#CASE-044-2-3","run-browser-3#case-43-diagnostic-count","run-browser-3#case-43-diagnostic-revision","run-browser-3#case-43-diagnostic-runId","run-browser-3#case-43-diagnostic-attempt","run-browser-3#case-43-diagnostic-project","run-browser-3#case-43-diagnostic-locale","run-browser-3#case-43-diagnostic-timezone","run-browser-3#case-43-diagnostic-startedAt","run-browser-3#case-43-diagnostic-finishedAt","run-browser-3#case-43-diagnostic-cleanupStage","run-browser-3#case-43-diagnostic-status","run-browser-3#case-43-diagnostic-sessionDate","run-browser-3#case-43-checkpoints","run-browser-3#case-43-quality-errors","run-browser-3#case-43-diagnostic-errors","run-browser-3#case-43-missing-signals","run-browser-3#case-43-unexpected-browser-errors","run-browser-3#case-43-complete-goals","run-browser-3#case-43-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4 완료를 대조했다. 이 CASE의 정리 resource 4개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-044-3-0","app-source-current#CASE-044-3-1","app-source-current#CASE-044-3-2","app-source-current#CASE-044-3-3","run-browser-3#case-43-rpc-observers","run-browser-3#case-43-cleanup-completed","run-browser-3#case-43-cleanup-resources","run-browser-3#case-43-listener-owners","run-browser-3#case-43-page-0-pageClosed","run-browser-3#case-43-page-0-routeCleanup","run-browser-3#case-43-page-0-observerDisposal","run-browser-3#case-43-page-0-currentPending","run-browser-3#case-43-page-0-previousDocumentPending","run-browser-3#case-43-page-1-pageClosed","run-browser-3#case-43-page-1-routeCleanup","run-browser-3#case-43-page-1-observerDisposal","run-browser-3#case-43-page-1-currentPending","run-browser-3#case-43-page-1-previousDocumentPending","run-browser-3#case-43-page-2-pageClosed","run-browser-3#case-43-page-2-routeCleanup","run-browser-3#case-43-page-2-observerDisposal","run-browser-3#case-43-page-2-currentPending","run-browser-3#case-43-page-2-previousDocumentPending","run-browser-3#case-43-checkpoints","run-browser-3#case-43-quality-errors","run-browser-3#case-43-diagnostic-errors","run-browser-3#case-43-missing-signals","run-browser-3#case-43-unexpected-browser-errors","run-browser-3#case-43-complete-goals","run-browser-3#case-43-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 실제 JWT 401→held→페이지 닫힘→B의 실제 저장→A 재인증 원래 요청 재생을 관측한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L144"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: A/B의 별도 준비 ID, 전송 0/1, 원래 immutable request와 A/B 인증별 빈/단일 session 조회를 정답으로 삼는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L94","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L101"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"A pending data stays private while B saves and only A reentry uploads A request: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4이다. 선언한 실패 owner-a-expired-jwt:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 목표: A 기록이 B의 인증 조회에 나타나는 계정 격리 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-044-6-0","app-source-current#CASE-044-6-1","app-source-current#CASE-044-6-2","app-source-current#CASE-044-6-3","run-browser-3#case-43-fault-0-id","run-browser-3#case-43-fault-0-method","run-browser-3#case-43-fault-0-path","run-browser-3#case-43-fault-0-status","run-browser-3#case-43-fault-0-requestCount","run-browser-3#case-43-fault-0-requiredAttempts","run-browser-3#case-43-fault-0-observedAttempts","run-browser-3#case-43-fault-0-missingAttempts","run-browser-3#case-43-fault-0-violations","run-browser-3#case-43-goal-checkpoints","run-browser-3#case-43-checkpoints","run-browser-3#case-43-quality-errors","run-browser-3#case-43-diagnostic-errors","run-browser-3#case-43-missing-signals","run-browser-3#case-43-unexpected-browser-errors","run-browser-3#case-43-complete-goals","run-browser-3#case-43-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: B 화면 A 제목 부재·A 자동 전송 없음·B만 저장·A 복귀 전 미저장·양방향 서버 접근 차단을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L164"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/case.json#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L169","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-044-8-0","app-source-current#CASE-044-8-1","app-source-current#CASE-044-8-2","app-source-current#CASE-044-8-3","run-browser-3#case-43-checkpoints","run-browser-3#case-43-quality-errors","run-browser-3#case-43-diagnostic-errors","run-browser-3#case-43-missing-signals","run-browser-3#case-43-unexpected-browser-errors","run-browser-3#case-43-complete-goals","run-browser-3#case-43-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"사용자 교체 후 B의 실제 RLS reader가 A의 session을 반환하는 SQL 결함을 정상→기존 목표 단언 실패→원본 복원 정상으로 확인했다. 실제 기대/관측값 불일치·정확한 최초 단언 위치·자동 재시도0·소유 자원 정리·SQL 정의/소유자/ACL 복원을 검증했다. 모든 가능한 결함을 증명하는 뜻은 아니다. 실제 SQL 주입·정확한 첫 예외·복원 readback은 원본 파일에 고정했고, 같은 후보의 공통 판정기 회귀가 미주입/생존/시간초과/다른 예외/정리 실패를 거절한 결과를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-044-pending-owner-switch-isolation/regression.spec.mjs#L151","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L59","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L137"],"evidenceRefs":["case044-owner-normal#goal-matched","case044-owner-normal#goal-expected","case044-owner-normal#goal-actual","case044-owner-normal#goal-target","case044-owner-normal#sql-original","case044-owner-normal#sql-restored","case044-owner-normal#sql-restored-hash","case044-owner-normal#native-first-attempt","case044-owner-normal#native-status","case044-owner-normal#owned-cleanup","case044-owner-normal#cleanup-stage","case044-owner-normal#cleanup-failure","case044-owner-normal#quality-status","case044-owner-mutant#goal-matched","case044-owner-mutant#goal-expected","case044-owner-mutant#goal-actual","case044-owner-mutant#goal-target","case044-owner-mutant#sql-original","case044-owner-mutant#sql-restored","case044-owner-mutant#sql-restored-hash","case044-owner-mutant#native-first-attempt","case044-owner-mutant#native-status","case044-owner-mutant#owned-cleanup","case044-owner-mutant#cleanup-stage","case044-owner-mutant#cleanup-failure","case044-owner-mutant#sql-applied","case044-owner-mutant#native-first-error-location","case044-owner-restored#goal-matched","case044-owner-restored#goal-expected","case044-owner-restored#goal-actual","case044-owner-restored#goal-target","case044-owner-restored#sql-original","case044-owner-restored#sql-restored","case044-owner-restored#sql-restored-hash","case044-owner-restored#native-first-attempt","case044-owner-restored#native-status","case044-owner-restored#owned-cleanup","case044-owner-restored#cleanup-stage","case044-owner-restored#cleanup-failure","case044-owner-restored#quality-status","app-node-93d4cad6#line-3845-helper-regression","app-node-93d4cad6#line-3846-helper-regression","app-node-93d4cad6#line-3846-enforcement-regression","app-node-93d4cad6#line-3847-helper-regression","app-node-93d4cad6#line-3847-enforcement-regression","app-node-93d4cad6#line-3848-helper-regression","app-node-93d4cad6#line-3849-helper-regression","app-node-93d4cad6#line-3863-helper-regression","app-node-93d4cad6#line-3863-enforcement-regression","app-node-93d4cad6#line-3864-helper-regression","app-node-93d4cad6#line-3864-enforcement-regression","app-node-93d4cad6#line-3865-helper-regression","app-node-93d4cad6#line-3865-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 4개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-044-10-0","app-source-current#CASE-044-10-1","app-source-current#CASE-044-10-2","app-source-current#CASE-044-10-3","run-browser-3#case-43-rpc-observers","run-browser-3#case-43-cleanup-completed","run-browser-3#case-43-cleanup-resources","run-browser-3#case-43-listener-owners","run-browser-3#case-43-page-0-pageClosed","run-browser-3#case-43-page-0-routeCleanup","run-browser-3#case-43-page-0-observerDisposal","run-browser-3#case-43-page-0-currentPending","run-browser-3#case-43-page-0-previousDocumentPending","run-browser-3#case-43-page-1-pageClosed","run-browser-3#case-43-page-1-routeCleanup","run-browser-3#case-43-page-1-observerDisposal","run-browser-3#case-43-page-1-currentPending","run-browser-3#case-43-page-1-previousDocumentPending","run-browser-3#case-43-page-2-pageClosed","run-browser-3#case-43-page-2-routeCleanup","run-browser-3#case-43-page-2-observerDisposal","run-browser-3#case-43-page-2-currentPending","run-browser-3#case-43-page-2-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 11366ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-044-11-0","app-source-current#CASE-044-11-1","app-source-current#CASE-044-11-2","run-browser-3#case-43-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-044-12-0","app-source-current#CASE-044-12-1","app-source-current#CASE-044-12-2","app-source-current#CASE-044-12-3","run-browser-3#case-43-checkpoints","run-browser-3#case-43-quality-errors","run-browser-3#case-43-diagnostic-errors","run-browser-3#case-43-missing-signals","run-browser-3#case-43-unexpected-browser-errors","run-browser-3#case-43-complete-goals","run-browser-3#case-43-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-044-14-0","app-source-current#CASE-044-14-1","app-source-current#CASE-044-14-2","app-source-current#CASE-044-14-3","run-browser-3#case-43-checkpoints","run-browser-3#case-43-quality-errors","run-browser-3#case-43-diagnostic-errors","run-browser-3#case-43-missing-signals","run-browser-3#case-43-unexpected-browser-errors","run-browser-3#case-43-complete-goals","run-browser-3#case-43-control-records","run-browser-3#case-43-native-status","run-browser-3#case-43-retry","run-browser-3#case-43-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-044-15-0","app-source-current#CASE-044-15-1","app-source-current#CASE-044-15-2","app-source-current#CASE-044-15-3","run-browser-3#case-43-diagnostic-count","run-browser-3#case-43-diagnostic-revision","run-browser-3#case-43-diagnostic-runId","run-browser-3#case-43-diagnostic-attempt","run-browser-3#case-43-diagnostic-project","run-browser-3#case-43-diagnostic-locale","run-browser-3#case-43-diagnostic-timezone","run-browser-3#case-43-diagnostic-startedAt","run-browser-3#case-43-diagnostic-finishedAt","run-browser-3#case-43-diagnostic-cleanupStage","run-browser-3#case-43-diagnostic-status","run-browser-3#case-43-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-045","title":"a later tab edit resolves a real revision conflict and an older late ACK cannot restore old values","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L29","checks":{"1":{"status":"P","reason":"정적 의미 확인: 동일 owner의 별도 browser context에서 실제 revision 충돌과 늦은 ACK를 제어하여 최신 편집/최종 삭제 수렴을 검사한다. 공유 IDB 직렬화는 CASE-040로 연결한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L170"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:05:08.599Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-045-2-0","app-source-current#CASE-045-2-1","app-source-current#CASE-045-2-2","app-source-current#CASE-045-2-3","run-browser-3#case-44-diagnostic-count","run-browser-3#case-44-diagnostic-revision","run-browser-3#case-44-diagnostic-runId","run-browser-3#case-44-diagnostic-attempt","run-browser-3#case-44-diagnostic-project","run-browser-3#case-44-diagnostic-locale","run-browser-3#case-44-diagnostic-timezone","run-browser-3#case-44-diagnostic-startedAt","run-browser-3#case-44-diagnostic-finishedAt","run-browser-3#case-44-diagnostic-cleanupStage","run-browser-3#case-44-diagnostic-status","run-browser-3#case-44-diagnostic-sessionDate","run-browser-3#case-44-checkpoints","run-browser-3#case-44-quality-errors","run-browser-3#case-44-diagnostic-errors","run-browser-3#case-44-missing-signals","run-browser-3#case-44-unexpected-browser-errors","run-browser-3#case-44-complete-goals","run-browser-3#case-44-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L216","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-045-3-0","app-source-current#CASE-045-3-1","app-source-current#CASE-045-3-2","app-source-current#CASE-045-3-3","run-browser-3#case-44-rpc-observers","run-browser-3#case-44-cleanup-completed","run-browser-3#case-44-cleanup-resources","run-browser-3#case-44-listener-owners","run-browser-3#case-44-page-0-pageClosed","run-browser-3#case-44-page-0-routeCleanup","run-browser-3#case-44-page-0-observerDisposal","run-browser-3#case-44-page-0-currentPending","run-browser-3#case-44-page-0-previousDocumentPending","run-browser-3#case-44-page-1-pageClosed","run-browser-3#case-44-page-1-routeCleanup","run-browser-3#case-44-page-1-observerDisposal","run-browser-3#case-44-page-1-currentPending","run-browser-3#case-44-page-1-previousDocumentPending","run-browser-3#case-44-checkpoints","run-browser-3#case-44-quality-errors","run-browser-3#case-44-diagnostic-errors","run-browser-3#case-44-missing-signals","run-browser-3#case-44-unexpected-browser-errors","run-browser-3#case-44-complete-goals","run-browser-3#case-44-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: A 실제 commit 뒤 ACK 보류 중 B stale revision을 보내 400→200을 관측하고 write timeout 안에 A ACK를 해제한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L181"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 60→70→80/rev3 및 최종 삭제, expected_revision 1→2/3→4, 개별 mutation ID를 독립 값으로 비교한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L112","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L172","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L184"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"a later tab edit resolves a real revision conflict and an older late ACK cannot restore old values: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4이다. 선언한 실패 real-stale-revision:POST /rest/v1/rpc/save_session_v5; real-stale-delete-revision:POST /rest/v1/rpc/delete_session_v5; deleted-record-detail:POST /rest/v1/rpc/get_session_detail의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 실제 revision 충돌 복구 후 최신 80kg 대신 이전 탭의 70kg을 저장하는 경합 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-045-6-0","app-source-current#CASE-045-6-1","app-source-current#CASE-045-6-2","app-source-current#CASE-045-6-3","run-browser-3#case-44-fault-0-id","run-browser-3#case-44-fault-0-method","run-browser-3#case-44-fault-0-path","run-browser-3#case-44-fault-0-status","run-browser-3#case-44-fault-0-requestCount","run-browser-3#case-44-fault-0-requiredAttempts","run-browser-3#case-44-fault-0-observedAttempts","run-browser-3#case-44-fault-0-missingAttempts","run-browser-3#case-44-fault-0-violations","run-browser-3#case-44-fault-1-id","run-browser-3#case-44-fault-1-method","run-browser-3#case-44-fault-1-path","run-browser-3#case-44-fault-1-status","run-browser-3#case-44-fault-1-requestCount","run-browser-3#case-44-fault-1-requiredAttempts","run-browser-3#case-44-fault-1-observedAttempts","run-browser-3#case-44-fault-1-missingAttempts","run-browser-3#case-44-fault-1-violations","run-browser-3#case-44-fault-2-id","run-browser-3#case-44-fault-2-method","run-browser-3#case-44-fault-2-path","run-browser-3#case-44-fault-2-status","run-browser-3#case-44-fault-2-requestCount","run-browser-3#case-44-fault-2-requiredAttempts","run-browser-3#case-44-fault-2-observedAttempts","run-browser-3#case-44-fault-2-missingAttempts","run-browser-3#case-44-fault-2-violations","run-browser-3#case-44-required-event-expectedCount","run-browser-3#case-44-required-event-observedCount","run-browser-3#case-44-required-event-missing","run-browser-3#case-44-required-event-violations","run-browser-3#case-44-required-event-0-id","run-browser-3#case-44-required-event-0-operationName","run-browser-3#case-44-required-event-0-receiptStored","run-browser-3#case-44-required-event-0-storedRowVerified","run-browser-3#case-44-goal-checkpoints","run-browser-3#case-44-checkpoints","run-browser-3#case-44-quality-errors","run-browser-3#case-44-diagnostic-errors","run-browser-3#case-44-missing-signals","run-browser-3#case-44-unexpected-browser-errors","run-browser-3#case-44-complete-goals","run-browser-3#case-44-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 독립 queue·claim·mutations, 오래된 receipt revision, 양 context reload 최신값/삭제 부재를 검사한다. 현재 detail 검사는 표시될 때만 적용되지만 뒤의 reload 값 단언은 필수다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L193","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L204"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/case.json#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L216","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-045-8-0","app-source-current#CASE-045-8-1","app-source-current#CASE-045-8-2","app-source-current#CASE-045-8-3","run-browser-3#case-44-checkpoints","run-browser-3#case-44-quality-errors","run-browser-3#case-44-diagnostic-errors","run-browser-3#case-44-missing-signals","run-browser-3#case-44-unexpected-browser-errors","run-browser-3#case-44-complete-goals","run-browser-3#case-44-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 실제 revision 충돌 복구 후 최신 80kg 대신 이전 탭의 70kg을 저장하는 경합 결함 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case045-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-045-concurrent-tab-latest-intent/regression.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-045-9-0","app-source-current#CASE-045-9-1","run-browser-3#case-44-control-0-normal-value","run-browser-3#case-44-control-0-normal","run-browser-3#case-44-control-0-negative-value","run-browser-3#case-44-control-0-negative","run-browser-3#case-44-control-0-restored-value","run-browser-3#case-44-control-0-restored","run-browser-3#case-44-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-045-10-0","app-source-current#CASE-045-10-1","app-source-current#CASE-045-10-2","app-source-current#CASE-045-10-3","run-browser-3#case-44-rpc-observers","run-browser-3#case-44-cleanup-completed","run-browser-3#case-44-cleanup-resources","run-browser-3#case-44-listener-owners","run-browser-3#case-44-page-0-pageClosed","run-browser-3#case-44-page-0-routeCleanup","run-browser-3#case-44-page-0-observerDisposal","run-browser-3#case-44-page-0-currentPending","run-browser-3#case-44-page-0-previousDocumentPending","run-browser-3#case-44-page-1-pageClosed","run-browser-3#case-44-page-1-routeCleanup","run-browser-3#case-44-page-1-observerDisposal","run-browser-3#case-44-page-1-currentPending","run-browser-3#case-44-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 14472ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-045-11-0","app-source-current#CASE-045-11-1","app-source-current#CASE-045-11-2","run-browser-3#case-44-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-045-12-0","app-source-current#CASE-045-12-1","app-source-current#CASE-045-12-2","app-source-current#CASE-045-12-3","run-browser-3#case-44-checkpoints","run-browser-3#case-44-quality-errors","run-browser-3#case-44-diagnostic-errors","run-browser-3#case-44-missing-signals","run-browser-3#case-44-unexpected-browser-errors","run-browser-3#case-44-complete-goals","run-browser-3#case-44-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-045-14-0","app-source-current#CASE-045-14-1","app-source-current#CASE-045-14-2","app-source-current#CASE-045-14-3","run-browser-3#case-44-checkpoints","run-browser-3#case-44-quality-errors","run-browser-3#case-44-diagnostic-errors","run-browser-3#case-44-missing-signals","run-browser-3#case-44-unexpected-browser-errors","run-browser-3#case-44-complete-goals","run-browser-3#case-44-control-records","run-browser-3#case-44-native-status","run-browser-3#case-44-retry","run-browser-3#case-44-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-045-15-0","app-source-current#CASE-045-15-1","app-source-current#CASE-045-15-2","app-source-current#CASE-045-15-3","run-browser-3#case-44-diagnostic-count","run-browser-3#case-44-diagnostic-revision","run-browser-3#case-44-diagnostic-runId","run-browser-3#case-44-diagnostic-attempt","run-browser-3#case-44-diagnostic-project","run-browser-3#case-44-diagnostic-locale","run-browser-3#case-44-diagnostic-timezone","run-browser-3#case-44-diagnostic-startedAt","run-browser-3#case-44-diagnostic-finishedAt","run-browser-3#case-44-diagnostic-cleanupStage","run-browser-3#case-44-diagnostic-status","run-browser-3#case-44-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-046","title":"a permanent rejection is quarantined until the user uploads the preserved workout as a new record","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L10","checks":{"1":{"status":"P","reason":"정적 의미 확인: 영구 22023 거절을 격리하고 실제 사용자 복구 버튼으로 원래 내용을 새 identity로 한 번 업로드한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L50","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L67"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:03:53.737Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-046-2-0","app-source-current#CASE-046-2-1","app-source-current#CASE-046-2-2","app-source-current#CASE-046-2-3","run-browser-4#case-45-diagnostic-count","run-browser-4#case-45-diagnostic-revision","run-browser-4#case-45-diagnostic-runId","run-browser-4#case-45-diagnostic-attempt","run-browser-4#case-45-diagnostic-project","run-browser-4#case-45-diagnostic-locale","run-browser-4#case-45-diagnostic-timezone","run-browser-4#case-45-diagnostic-startedAt","run-browser-4#case-45-diagnostic-finishedAt","run-browser-4#case-45-diagnostic-cleanupStage","run-browser-4#case-45-diagnostic-status","run-browser-4#case-45-diagnostic-sessionDate","run-browser-4#case-45-checkpoints","run-browser-4#case-45-quality-errors","run-browser-4#case-45-diagnostic-errors","run-browser-4#case-45-missing-signals","run-browser-4#case-45-unexpected-browser-errors","run-browser-4#case-45-complete-goals","run-browser-4#case-45-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-046-3-0","app-source-current#CASE-046-3-1","app-source-current#CASE-046-3-2","app-source-current#CASE-046-3-3","run-browser-4#case-45-rpc-observers","run-browser-4#case-45-cleanup-completed","run-browser-4#case-45-cleanup-resources","run-browser-4#case-45-listener-owners","run-browser-4#case-45-page-0-pageClosed","run-browser-4#case-45-page-0-routeCleanup","run-browser-4#case-45-page-0-observerDisposal","run-browser-4#case-45-page-0-currentPending","run-browser-4#case-45-page-0-previousDocumentPending","run-browser-4#case-45-checkpoints","run-browser-4#case-45-quality-errors","run-browser-4#case-45-diagnostic-errors","run-browser-4#case-45-missing-signals","run-browser-4#case-45-unexpected-browser-errors","run-browser-4#case-45-complete-goals","run-browser-4#case-45-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 첫 route 거절과 blocked 상태를 확인한 뒤 online 이벤트에도 전송 1회임을 보고 사용자 버튼으로 회복한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L67"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 제목/60kg×5, blocked 상태, 이전 receipt0/새 receipt1, 새 mutation/source_ref 관계를 독립 판정한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L76"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"a permanent rejection is quarantined until the user uploads the preserved workout as a new record: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3이다. 선언한 실패 permanent-contract-rejection:POST /rest/v1/rpc/save_session_v5의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 영구 거절로 격리된 기록의 제목이 유실되는 입력 보존 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-046-6-0","app-source-current#CASE-046-6-1","app-source-current#CASE-046-6-2","app-source-current#CASE-046-6-3","run-browser-4#case-45-fault-0-id","run-browser-4#case-45-fault-0-method","run-browser-4#case-45-fault-0-path","run-browser-4#case-45-fault-0-status","run-browser-4#case-45-fault-0-requestCount","run-browser-4#case-45-fault-0-requiredAttempts","run-browser-4#case-45-fault-0-observedAttempts","run-browser-4#case-45-fault-0-missingAttempts","run-browser-4#case-45-fault-0-violations","run-browser-4#case-45-required-event-expectedCount","run-browser-4#case-45-required-event-observedCount","run-browser-4#case-45-required-event-missing","run-browser-4#case-45-required-event-violations","run-browser-4#case-45-required-event-0-id","run-browser-4#case-45-required-event-0-operationName","run-browser-4#case-45-required-event-0-receiptStored","run-browser-4#case-45-required-event-0-storedRowVerified","run-browser-4#case-45-goal-checkpoints","run-browser-4#case-45-checkpoints","run-browser-4#case-45-quality-errors","run-browser-4#case-45-diagnostic-errors","run-browser-4#case-45-missing-signals","run-browser-4#case-45-unexpected-browser-errors","run-browser-4#case-45-complete-goals","run-browser-4#case-45-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 자동 재시도 없음, 서버 미저장·입력 보존·실제 복구 버튼, 새 ID 하나와 reload 값을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L53","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L80"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/case.json#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-046-8-0","app-source-current#CASE-046-8-1","app-source-current#CASE-046-8-2","app-source-current#CASE-046-8-3","run-browser-4#case-45-checkpoints","run-browser-4#case-45-quality-errors","run-browser-4#case-45-diagnostic-errors","run-browser-4#case-45-missing-signals","run-browser-4#case-45-unexpected-browser-errors","run-browser-4#case-45-complete-goals","run-browser-4#case-45-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 영구 거절로 격리된 기록의 제목이 유실되는 입력 보존 결함 소유 IndexedDB 행에 대응하는 대표 control 'case046-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-046-9-0","app-source-current#CASE-046-9-1","run-browser-4#case-45-control-0-normal-value","run-browser-4#case-45-control-0-normal","run-browser-4#case-45-control-0-negative-value","run-browser-4#case-45-control-0-negative","run-browser-4#case-45-control-0-restored-value","run-browser-4#case-45-control-0-restored","run-browser-4#case-45-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-046-blocked-write-user-recovery/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-046-10-0","app-source-current#CASE-046-10-1","app-source-current#CASE-046-10-2","app-source-current#CASE-046-10-3","run-browser-4#case-45-rpc-observers","run-browser-4#case-45-cleanup-completed","run-browser-4#case-45-cleanup-resources","run-browser-4#case-45-listener-owners","run-browser-4#case-45-page-0-pageClosed","run-browser-4#case-45-page-0-routeCleanup","run-browser-4#case-45-page-0-observerDisposal","run-browser-4#case-45-page-0-currentPending","run-browser-4#case-45-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6956ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-046-11-0","app-source-current#CASE-046-11-1","app-source-current#CASE-046-11-2","run-browser-4#case-45-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-046-12-0","app-source-current#CASE-046-12-1","app-source-current#CASE-046-12-2","app-source-current#CASE-046-12-3","run-browser-4#case-45-checkpoints","run-browser-4#case-45-quality-errors","run-browser-4#case-45-diagnostic-errors","run-browser-4#case-45-missing-signals","run-browser-4#case-45-unexpected-browser-errors","run-browser-4#case-45-complete-goals","run-browser-4#case-45-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-046-14-0","app-source-current#CASE-046-14-1","app-source-current#CASE-046-14-2","app-source-current#CASE-046-14-3","run-browser-4#case-45-checkpoints","run-browser-4#case-45-quality-errors","run-browser-4#case-45-diagnostic-errors","run-browser-4#case-45-missing-signals","run-browser-4#case-45-unexpected-browser-errors","run-browser-4#case-45-complete-goals","run-browser-4#case-45-control-records","run-browser-4#case-45-native-status","run-browser-4#case-45-retry","run-browser-4#case-45-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-046-15-0","app-source-current#CASE-046-15-1","app-source-current#CASE-046-15-2","app-source-current#CASE-046-15-3","run-browser-4#case-45-diagnostic-count","run-browser-4#case-45-diagnostic-revision","run-browser-4#case-45-diagnostic-runId","run-browser-4#case-45-diagnostic-attempt","run-browser-4#case-45-diagnostic-project","run-browser-4#case-45-diagnostic-locale","run-browser-4#case-45-diagnostic-timezone","run-browser-4#case-45-diagnostic-startedAt","run-browser-4#case-45-diagnostic-finishedAt","run-browser-4#case-45-diagnostic-cleanupStage","run-browser-4#case-45-diagnostic-status","run-browser-4#case-45-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-047","title":"an old detail response cannot replace the newer selected workout and a failed read can be retried","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L10","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 이전 detail 응답을 늦추어 현재 선택 상세가 유지되고, 별도 조회 실패 후 로그인 유지·재조회가 성공하는 경계다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L104"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:00.846Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-047-2-0","app-source-current#CASE-047-2-1","app-source-current#CASE-047-2-2","app-source-current#CASE-047-2-3","run-browser-4#case-46-diagnostic-count","run-browser-4#case-46-diagnostic-revision","run-browser-4#case-46-diagnostic-runId","run-browser-4#case-46-diagnostic-attempt","run-browser-4#case-46-diagnostic-project","run-browser-4#case-46-diagnostic-locale","run-browser-4#case-46-diagnostic-timezone","run-browser-4#case-46-diagnostic-startedAt","run-browser-4#case-46-diagnostic-finishedAt","run-browser-4#case-46-diagnostic-cleanupStage","run-browser-4#case-46-diagnostic-status","run-browser-4#case-46-diagnostic-sessionDate","run-browser-4#case-46-checkpoints","run-browser-4#case-46-quality-errors","run-browser-4#case-46-diagnostic-errors","run-browser-4#case-46-missing-signals","run-browser-4#case-46-unexpected-browser-errors","run-browser-4#case-46-complete-goals","run-browser-4#case-46-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-047-3-0","app-source-current#CASE-047-3-1","app-source-current#CASE-047-3-2","app-source-current#CASE-047-3-3","run-browser-4#case-46-rpc-observers","run-browser-4#case-46-cleanup-completed","run-browser-4#case-46-cleanup-resources","run-browser-4#case-46-listener-owners","run-browser-4#case-46-page-0-pageClosed","run-browser-4#case-46-page-0-routeCleanup","run-browser-4#case-46-page-0-observerDisposal","run-browser-4#case-46-page-0-currentPending","run-browser-4#case-46-page-0-previousDocumentPending","run-browser-4#case-46-checkpoints","run-browser-4#case-46-quality-errors","run-browser-4#case-46-diagnostic-errors","run-browser-4#case-46-missing-signals","run-browser-4#case-46-unexpected-browser-errors","run-browser-4#case-46-complete-goals","run-browser-4#case-46-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 첫 실제 응답 확보→다른 기록 선택→oldDelivered 확인→현재 상세 유지, 별도 503→사용자 재조회 순서다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L104"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 준비한 first/second 제목과 60/80kg×5, 현재 owner를 독립 비교한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L66","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L91","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L106"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"an old detail response cannot replace the newer selected workout and a failed read can be retried: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3이다. 선언한 실패 detail-read-unavailable:POST /rest/v1/rpc/get_session_detail의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 늦은 첫 기록 응답이 현재 두 번째 기록 제목을 덮어쓰는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L59","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-047-6-0","app-source-current#CASE-047-6-1","app-source-current#CASE-047-6-2","app-source-current#CASE-047-6-3","run-browser-4#case-46-fault-0-id","run-browser-4#case-46-fault-0-method","run-browser-4#case-46-fault-0-path","run-browser-4#case-46-fault-0-status","run-browser-4#case-46-fault-0-requestCount","run-browser-4#case-46-fault-0-requiredAttempts","run-browser-4#case-46-fault-0-observedAttempts","run-browser-4#case-46-fault-0-missingAttempts","run-browser-4#case-46-fault-0-violations","run-browser-4#case-46-required-event-expectedCount","run-browser-4#case-46-required-event-observedCount","run-browser-4#case-46-required-event-missing","run-browser-4#case-46-required-event-violations","run-browser-4#case-46-required-event-0-id","run-browser-4#case-46-required-event-0-operationName","run-browser-4#case-46-required-event-0-receiptStored","run-browser-4#case-46-required-event-0-storedRowVerified","run-browser-4#case-46-goal-checkpoints","run-browser-4#case-46-checkpoints","run-browser-4#case-46-quality-errors","run-browser-4#case-46-diagnostic-errors","run-browser-4#case-46-missing-signals","run-browser-4#case-46-unexpected-browser-errors","run-browser-4#case-46-complete-goals","run-browser-4#case-46-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 늦은 이전 제목 배제, 실패 뒤 로그인 화면 없음/세션 유지, 재시도 응답 200 및 올바른 상세를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L66","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L91","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L106"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/case.json#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-047-8-0","app-source-current#CASE-047-8-1","app-source-current#CASE-047-8-2","app-source-current#CASE-047-8-3","run-browser-4#case-46-checkpoints","run-browser-4#case-46-quality-errors","run-browser-4#case-46-diagnostic-errors","run-browser-4#case-46-missing-signals","run-browser-4#case-46-unexpected-browser-errors","run-browser-4#case-46-complete-goals","run-browser-4#case-46-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 늦은 첫 기록 응답이 현재 두 번째 기록 제목을 덮어쓰는 결함 실제 DOM에 대응하는 대표 control 'case047-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-047-read-model-late-response/regression.spec.mjs#L59","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-047-9-0","app-source-current#CASE-047-9-1","run-browser-4#case-46-control-0-normal-value","run-browser-4#case-46-control-0-normal","run-browser-4#case-46-control-0-negative-value","run-browser-4#case-46-control-0-negative","run-browser-4#case-46-control-0-restored-value","run-browser-4#case-46-control-0-restored","run-browser-4#case-46-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-047-10-0","app-source-current#CASE-047-10-1","app-source-current#CASE-047-10-2","app-source-current#CASE-047-10-3","run-browser-4#case-46-rpc-observers","run-browser-4#case-46-cleanup-completed","run-browser-4#case-46-cleanup-resources","run-browser-4#case-46-listener-owners","run-browser-4#case-46-page-0-pageClosed","run-browser-4#case-46-page-0-routeCleanup","run-browser-4#case-46-page-0-observerDisposal","run-browser-4#case-46-page-0-currentPending","run-browser-4#case-46-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 12471ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-047-11-0","app-source-current#CASE-047-11-1","app-source-current#CASE-047-11-2","run-browser-4#case-46-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-047-12-0","app-source-current#CASE-047-12-1","app-source-current#CASE-047-12-2","app-source-current#CASE-047-12-3","run-browser-4#case-46-checkpoints","run-browser-4#case-46-quality-errors","run-browser-4#case-46-diagnostic-errors","run-browser-4#case-46-missing-signals","run-browser-4#case-46-unexpected-browser-errors","run-browser-4#case-46-complete-goals","run-browser-4#case-46-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-047-14-0","app-source-current#CASE-047-14-1","app-source-current#CASE-047-14-2","app-source-current#CASE-047-14-3","run-browser-4#case-46-checkpoints","run-browser-4#case-46-quality-errors","run-browser-4#case-46-diagnostic-errors","run-browser-4#case-46-missing-signals","run-browser-4#case-46-unexpected-browser-errors","run-browser-4#case-46-complete-goals","run-browser-4#case-46-control-records","run-browser-4#case-46-native-status","run-browser-4#case-46-retry","run-browser-4#case-46-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-047-15-0","app-source-current#CASE-047-15-1","app-source-current#CASE-047-15-2","app-source-current#CASE-047-15-3","run-browser-4#case-46-diagnostic-count","run-browser-4#case-46-diagnostic-revision","run-browser-4#case-46-diagnostic-runId","run-browser-4#case-46-diagnostic-attempt","run-browser-4#case-46-diagnostic-project","run-browser-4#case-46-diagnostic-locale","run-browser-4#case-46-diagnostic-timezone","run-browser-4#case-46-diagnostic-startedAt","run-browser-4#case-46-diagnostic-finishedAt","run-browser-4#case-46-diagnostic-cleanupStage","run-browser-4#case-46-diagnostic-status","run-browser-4#case-46-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-048","title":"cached HTTPS reentry and a real service worker update preserve one pending workout","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L17","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 HTTPS service worker 캐시의 오프라인 새 페이지와 worker 교체 중 pending 보존·단일 반영을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L132","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L149"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:05:15.233Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-048-2-0","app-source-current#CASE-048-2-1","app-source-current#CASE-048-2-2","app-source-current#CASE-048-2-3","run-browser-4#case-47-diagnostic-count","run-browser-4#case-47-diagnostic-revision","run-browser-4#case-47-diagnostic-runId","run-browser-4#case-47-diagnostic-attempt","run-browser-4#case-47-diagnostic-project","run-browser-4#case-47-diagnostic-locale","run-browser-4#case-47-diagnostic-timezone","run-browser-4#case-47-diagnostic-startedAt","run-browser-4#case-47-diagnostic-finishedAt","run-browser-4#case-47-diagnostic-cleanupStage","run-browser-4#case-47-diagnostic-status","run-browser-4#case-47-diagnostic-sessionDate","run-browser-4#case-47-checkpoints","run-browser-4#case-47-quality-errors","run-browser-4#case-47-diagnostic-errors","run-browser-4#case-47-missing-signals","run-browser-4#case-47-unexpected-browser-errors","run-browser-4#case-47-complete-goals","run-browser-4#case-47-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-048-3-0","app-source-current#CASE-048-3-1","app-source-current#CASE-048-3-2","app-source-current#CASE-048-3-3","run-browser-4#case-47-rpc-observers","run-browser-4#case-47-cleanup-completed","run-browser-4#case-47-cleanup-resources","run-browser-4#case-47-listener-owners","run-browser-4#case-47-page-0-pageClosed","run-browser-4#case-47-page-0-routeCleanup","run-browser-4#case-47-page-0-observerDisposal","run-browser-4#case-47-page-0-currentPending","run-browser-4#case-47-page-0-previousDocumentPending","run-browser-4#case-47-page-1-pageClosed","run-browser-4#case-47-page-1-routeCleanup","run-browser-4#case-47-page-1-observerDisposal","run-browser-4#case-47-page-1-currentPending","run-browser-4#case-47-page-1-previousDocumentPending","run-browser-4#case-47-checkpoints","run-browser-4#case-47-quality-errors","run-browser-4#case-47-diagnostic-errors","run-browser-4#case-47-missing-signals","run-browser-4#case-47-unexpected-browser-errors","run-browser-4#case-47-complete-goals","run-browser-4#case-47-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: native offline/online 상태, 실제 캐시 응답, 저장 요청 보류, worker activated/controllerchange 관측 후 ACK를 해제한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다. 캐시 준비 reload 전 현재 문서 catalog/month 응답200 및실제finished를확인하도록보강했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L125","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L135","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L40"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 동일 owner/request ID/hash/body, offline document가 SW에서 온 200, session/receipt 1개와 60kg×5를 독립 단언한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L109","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L151","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L169"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"cached HTTPS reentry and a real service worker update preserve one pending workout: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 필수 복구 사건 observedCount=6와 누락/위반0도 확인했다. 목표: 서비스워커 교체가 ACK 전 pending 기록을 지우는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L140","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-048-6-0","app-source-current#CASE-048-6-1","app-source-current#CASE-048-6-2","app-source-current#CASE-048-6-3","run-browser-4#case-47-required-event-expectedCount","run-browser-4#case-47-required-event-observedCount","run-browser-4#case-47-required-event-missing","run-browser-4#case-47-required-event-violations","run-browser-4#case-47-required-event-0-id","run-browser-4#case-47-required-event-0-operationName","run-browser-4#case-47-required-event-0-receiptStored","run-browser-4#case-47-required-event-0-storedRowVerified","run-browser-4#case-47-required-event-1-id","run-browser-4#case-47-required-event-1-operationName","run-browser-4#case-47-required-event-1-receiptStored","run-browser-4#case-47-required-event-1-storedRowVerified","run-browser-4#case-47-required-event-2-id","run-browser-4#case-47-required-event-2-operationName","run-browser-4#case-47-required-event-2-receiptStored","run-browser-4#case-47-required-event-2-storedRowVerified","run-browser-4#case-47-required-event-3-id","run-browser-4#case-47-required-event-3-operationName","run-browser-4#case-47-required-event-3-receiptStored","run-browser-4#case-47-required-event-3-storedRowVerified","run-browser-4#case-47-required-event-4-id","run-browser-4#case-47-required-event-4-operationName","run-browser-4#case-47-required-event-4-receiptStored","run-browser-4#case-47-required-event-4-storedRowVerified","run-browser-4#case-47-required-event-5-id","run-browser-4#case-47-required-event-5-operationName","run-browser-4#case-47-required-event-5-receiptStored","run-browser-4#case-47-required-event-5-storedRowVerified","run-browser-4#case-47-goal-checkpoints","run-browser-4#case-47-checkpoints","run-browser-4#case-47-quality-errors","run-browser-4#case-47-diagnostic-errors","run-browser-4#case-47-missing-signals","run-browser-4#case-47-unexpected-browser-errors","run-browser-4#case-47-complete-goals","run-browser-4#case-47-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 오프라인 서버 미저장, 네트워크 문서 요청 없음, 실제 controllerchange, pending 불변·중복 전송 없음·reload를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L135","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L171"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3, checkpoint-4 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-048-8-0","app-source-current#CASE-048-8-1","app-source-current#CASE-048-8-2","app-source-current#CASE-048-8-3","run-browser-4#case-47-checkpoints","run-browser-4#case-47-quality-errors","run-browser-4#case-47-diagnostic-errors","run-browser-4#case-47-missing-signals","run-browser-4#case-47-unexpected-browser-errors","run-browser-4#case-47-complete-goals","run-browser-4#case-47-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 서비스워커 교체가 ACK 전 pending 기록을 지우는 결함 소유 IndexedDB 행에 대응하는 대표 control 'case048-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L140","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-048-9-0","app-source-current#CASE-048-9-1","run-browser-4#case-47-control-0-normal-value","run-browser-4#case-47-control-0-normal","run-browser-4#case-47-control-0-negative-value","run-browser-4#case-47-control-0-negative","run-browser-4#case-47-control-0-restored-value","run-browser-4#case-47-control-0-restored","run-browser-4#case-47-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-048-10-0","app-source-current#CASE-048-10-1","app-source-current#CASE-048-10-2","app-source-current#CASE-048-10-3","run-browser-4#case-47-rpc-observers","run-browser-4#case-47-cleanup-completed","run-browser-4#case-47-cleanup-resources","run-browser-4#case-47-listener-owners","run-browser-4#case-47-page-0-pageClosed","run-browser-4#case-47-page-0-routeCleanup","run-browser-4#case-47-page-0-observerDisposal","run-browser-4#case-47-page-0-currentPending","run-browser-4#case-47-page-0-previousDocumentPending","run-browser-4#case-47-page-1-pageClosed","run-browser-4#case-47-page-1-routeCleanup","run-browser-4#case-47-page-1-observerDisposal","run-browser-4#case-47-page-1-currentPending","run-browser-4#case-47-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 11454ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-048-11-0","app-source-current#CASE-048-11-1","app-source-current#CASE-048-11-2","run-browser-4#case-47-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-048-12-0","app-source-current#CASE-048-12-1","app-source-current#CASE-048-12-2","app-source-current#CASE-048-12-3","run-browser-4#case-47-checkpoints","run-browser-4#case-47-quality-errors","run-browser-4#case-47-diagnostic-errors","run-browser-4#case-47-missing-signals","run-browser-4#case-47-unexpected-browser-errors","run-browser-4#case-47-complete-goals","run-browser-4#case-47-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-048-14-0","app-source-current#CASE-048-14-1","app-source-current#CASE-048-14-2","app-source-current#CASE-048-14-3","run-browser-4#case-47-checkpoints","run-browser-4#case-47-quality-errors","run-browser-4#case-47-diagnostic-errors","run-browser-4#case-47-missing-signals","run-browser-4#case-47-unexpected-browser-errors","run-browser-4#case-47-complete-goals","run-browser-4#case-47-control-records","run-browser-4#case-47-native-status","run-browser-4#case-47-retry","run-browser-4#case-47-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/expectedOfflinePolicy.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-048-https-sw-offline-pending-update/regression.spec.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-048-15-0","app-source-current#CASE-048-15-1","app-source-current#CASE-048-15-2","app-source-current#CASE-048-15-3","run-browser-4#case-47-diagnostic-count","run-browser-4#case-47-diagnostic-revision","run-browser-4#case-47-diagnostic-runId","run-browser-4#case-47-diagnostic-attempt","run-browser-4#case-47-diagnostic-project","run-browser-4#case-47-diagnostic-locale","run-browser-4#case-47-diagnostic-timezone","run-browser-4#case-47-diagnostic-startedAt","run-browser-4#case-47-diagnostic-finishedAt","run-browser-4#case-47-diagnostic-cleanupStage","run-browser-4#case-47-diagnostic-status","run-browser-4#case-47-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-049","title":"CASE-049 a cancelled provider callback leaves login available and a retried callback restores the same real account","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L4","checks":{"1":{"status":"P","reason":"정적 의미 확인: Kakao 제공자 경계의 제어된 취소/PKCE 실패/성공 복귀 후 실제 Auth owner와 기존 신원을 검사한다. 외부 제공자 화면 완주가 아님을 manifest에 명시한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L104"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:13.483Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, rejected-exchange, checkpoint-2, checkpoint-3, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-049-2-0","app-source-current#CASE-049-2-1","app-source-current#CASE-049-2-2","app-source-current#CASE-049-2-3","run-browser-4#case-48-diagnostic-count","run-browser-4#case-48-diagnostic-revision","run-browser-4#case-48-diagnostic-runId","run-browser-4#case-48-diagnostic-attempt","run-browser-4#case-48-diagnostic-project","run-browser-4#case-48-diagnostic-locale","run-browser-4#case-48-diagnostic-timezone","run-browser-4#case-48-diagnostic-startedAt","run-browser-4#case-48-diagnostic-finishedAt","run-browser-4#case-48-diagnostic-cleanupStage","run-browser-4#case-48-diagnostic-status","run-browser-4#case-48-diagnostic-sessionDate","run-browser-4#case-48-checkpoints","run-browser-4#case-48-quality-errors","run-browser-4#case-48-diagnostic-errors","run-browser-4#case-48-missing-signals","run-browser-4#case-48-unexpected-browser-errors","run-browser-4#case-48-complete-goals","run-browser-4#case-48-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, rejected-exchange, checkpoint-2, checkpoint-3, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-049-3-0","app-source-current#CASE-049-3-1","app-source-current#CASE-049-3-2","app-source-current#CASE-049-3-3","run-browser-4#case-48-rpc-observers","run-browser-4#case-48-cleanup-completed","run-browser-4#case-48-cleanup-resources","run-browser-4#case-48-listener-owners","run-browser-4#case-48-page-0-pageClosed","run-browser-4#case-48-page-0-routeCleanup","run-browser-4#case-48-page-0-observerDisposal","run-browser-4#case-48-page-0-currentPending","run-browser-4#case-48-page-0-previousDocumentPending","run-browser-4#case-48-checkpoints","run-browser-4#case-48-quality-errors","run-browser-4#case-48-diagnostic-errors","run-browser-4#case-48-missing-signals","run-browser-4#case-48-unexpected-browser-errors","run-browser-4#case-48-complete-goals","run-browser-4#case-48-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: provider route의 정확 challenge·auth_code와 요청 카운터, 화면·Auth 저장 상태를 사건별로 관측한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L95"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 취소/실패 단계 세션없음, auth 횟수3/exchange2, 준비 owner와 검증된 기존 identity 목록을 불변 정답으로 사용한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L9","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L108"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-049 a cancelled provider callback leaves login available and a retried callback restores the same real account: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, rejected-exchange, checkpoint-2, checkpoint-3, journey-completion이다. 선언한 실패 rejected-pkce-exchange:POST /auth/v1/token?grant_type=pkce의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 취소 후 재로그인이 기존 identity 목록을 잃는 인증 회귀의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L109","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-049-6-0","app-source-current#CASE-049-6-1","app-source-current#CASE-049-6-2","app-source-current#CASE-049-6-3","run-browser-4#case-48-fault-0-id","run-browser-4#case-48-fault-0-method","run-browser-4#case-48-fault-0-path","run-browser-4#case-48-fault-0-status","run-browser-4#case-48-fault-0-requestCount","run-browser-4#case-48-fault-0-requiredAttempts","run-browser-4#case-48-fault-0-observedAttempts","run-browser-4#case-48-fault-0-missingAttempts","run-browser-4#case-48-fault-0-violations","run-browser-4#case-48-required-event-expectedCount","run-browser-4#case-48-required-event-observedCount","run-browser-4#case-48-required-event-missing","run-browser-4#case-48-required-event-violations","run-browser-4#case-48-required-event-0-id","run-browser-4#case-48-required-event-0-operationName","run-browser-4#case-48-required-event-0-receiptStored","run-browser-4#case-48-required-event-0-storedRowVerified","run-browser-4#case-48-goal-checkpoints","run-browser-4#case-48-checkpoints","run-browser-4#case-48-quality-errors","run-browser-4#case-48-diagnostic-errors","run-browser-4#case-48-missing-signals","run-browser-4#case-48-unexpected-browser-errors","run-browser-4#case-48-complete-goals","run-browser-4#case-48-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: URL code/error 제거, 실패 후 버튼 활성·home없음, 기존 profile·identity 보존 및 reload에서 복귀 재실행 없음까지 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L83","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L133","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L137","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L139"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, rejected-exchange, checkpoint-2, checkpoint-3, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/case.json#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-049-8-0","app-source-current#CASE-049-8-1","app-source-current#CASE-049-8-2","app-source-current#CASE-049-8-3","run-browser-4#case-48-checkpoints","run-browser-4#case-48-quality-errors","run-browser-4#case-48-diagnostic-errors","run-browser-4#case-48-missing-signals","run-browser-4#case-48-unexpected-browser-errors","run-browser-4#case-48-complete-goals","run-browser-4#case-48-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 취소 후 재로그인이 기존 identity 목록을 잃는 인증 회귀 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case049-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-049-provider-callback-cancel-retry/regression.spec.mjs#L109","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-049-9-0","app-source-current#CASE-049-9-1","run-browser-4#case-48-control-0-normal-value","run-browser-4#case-48-control-0-normal","run-browser-4#case-48-control-0-negative-value","run-browser-4#case-48-control-0-negative","run-browser-4#case-48-control-0-restored-value","run-browser-4#case-48-control-0-restored","run-browser-4#case-48-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-049-10-0","app-source-current#CASE-049-10-1","app-source-current#CASE-049-10-2","app-source-current#CASE-049-10-3","run-browser-4#case-48-rpc-observers","run-browser-4#case-48-cleanup-completed","run-browser-4#case-48-cleanup-resources","run-browser-4#case-48-listener-owners","run-browser-4#case-48-page-0-pageClosed","run-browser-4#case-48-page-0-routeCleanup","run-browser-4#case-48-page-0-observerDisposal","run-browser-4#case-48-page-0-currentPending","run-browser-4#case-48-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 5229ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-049-11-0","app-source-current#CASE-049-11-1","app-source-current#CASE-049-11-2","run-browser-4#case-48-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-049-12-0","app-source-current#CASE-049-12-1","app-source-current#CASE-049-12-2","app-source-current#CASE-049-12-3","run-browser-4#case-48-checkpoints","run-browser-4#case-48-quality-errors","run-browser-4#case-48-diagnostic-errors","run-browser-4#case-48-missing-signals","run-browser-4#case-48-unexpected-browser-errors","run-browser-4#case-48-complete-goals","run-browser-4#case-48-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-049-14-0","app-source-current#CASE-049-14-1","app-source-current#CASE-049-14-2","app-source-current#CASE-049-14-3","run-browser-4#case-48-checkpoints","run-browser-4#case-48-quality-errors","run-browser-4#case-48-diagnostic-errors","run-browser-4#case-48-missing-signals","run-browser-4#case-48-unexpected-browser-errors","run-browser-4#case-48-complete-goals","run-browser-4#case-48-control-records","run-browser-4#case-48-native-status","run-browser-4#case-48-retry","run-browser-4#case-48-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-049-15-0","app-source-current#CASE-049-15-1","app-source-current#CASE-049-15-2","app-source-current#CASE-049-15-3","run-browser-4#case-48-diagnostic-count","run-browser-4#case-48-diagnostic-revision","run-browser-4#case-48-diagnostic-runId","run-browser-4#case-48-diagnostic-attempt","run-browser-4#case-48-diagnostic-project","run-browser-4#case-48-diagnostic-locale","run-browser-4#case-48-diagnostic-timezone","run-browser-4#case-48-diagnostic-startedAt","run-browser-4#case-48-diagnostic-finishedAt","run-browser-4#case-48-diagnostic-cleanupStage","run-browser-4#case-48-diagnostic-status","run-browser-4#case-48-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-050","title":"CASE-050 profile edit failures preserve the draft and retry persists the name handle and photo","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L5","checks":{"1":{"status":"P","reason":"정적 의미 확인: 아이디 저장 실패 중 UI 잠금·draft 보존과 실제 재시도 이후 이름/아이디/사진 저장 및 reload를 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L18","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L81"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:19.000Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 feature-round-trip, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L18","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-050-2-0","app-source-current#CASE-050-2-1","app-source-current#CASE-050-2-2","app-source-current#CASE-050-2-3","run-browser-4#case-49-diagnostic-count","run-browser-4#case-49-diagnostic-revision","run-browser-4#case-49-diagnostic-runId","run-browser-4#case-49-diagnostic-attempt","run-browser-4#case-49-diagnostic-project","run-browser-4#case-49-diagnostic-locale","run-browser-4#case-49-diagnostic-timezone","run-browser-4#case-49-diagnostic-startedAt","run-browser-4#case-49-diagnostic-finishedAt","run-browser-4#case-49-diagnostic-cleanupStage","run-browser-4#case-49-diagnostic-status","run-browser-4#case-49-diagnostic-sessionDate","run-browser-4#case-49-checkpoints","run-browser-4#case-49-quality-errors","run-browser-4#case-49-diagnostic-errors","run-browser-4#case-49-missing-signals","run-browser-4#case-49-unexpected-browser-errors","run-browser-4#case-49-complete-goals","run-browser-4#case-49-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 feature-round-trip, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-050-3-0","app-source-current#CASE-050-3-1","app-source-current#CASE-050-3-2","app-source-current#CASE-050-3-3","run-browser-4#case-49-rpc-observers","run-browser-4#case-49-cleanup-completed","run-browser-4#case-49-cleanup-resources","run-browser-4#case-49-listener-owners","run-browser-4#case-49-page-0-pageClosed","run-browser-4#case-49-page-0-routeCleanup","run-browser-4#case-49-page-0-observerDisposal","run-browser-4#case-49-page-0-currentPending","run-browser-4#case-49-page-0-previousDocumentPending","run-browser-4#case-49-checkpoints","run-browser-4#case-49-quality-errors","run-browser-4#case-49-diagnostic-errors","run-browser-4#case-49-missing-signals","run-browser-4#case-49-unexpected-browser-errors","run-browser-4#case-49-complete-goals","run-browser-4#case-49-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 실제 첫 handle 요청 도착을 기다린 뒤 보류 중 잠금, 명시 오류 전달 후 draft/재시도 완료를 확인한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L50"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 입력한 handle/name, 자신의 owner ID/path 접두사와 최초 avatar 없음이 독립 정답이다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L81"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-050 profile edit failures preserve the draft and retry persists the name handle and photo: 실제 완료한 필수 상황·목표 checkpoint는 feature-round-trip, journey-completion이다. 선언한 실패 declared-post-503-1:POST /rest/v1/rpc/set_profile_handle_v1의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 실패 후 재시도 편집창의 아이디 draft가 유실되는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-050-6-0","app-source-current#CASE-050-6-1","app-source-current#CASE-050-6-2","app-source-current#CASE-050-6-3","run-browser-4#case-49-fault-0-id","run-browser-4#case-49-fault-0-method","run-browser-4#case-49-fault-0-path","run-browser-4#case-49-fault-0-status","run-browser-4#case-49-fault-0-requestCount","run-browser-4#case-49-fault-0-requiredAttempts","run-browser-4#case-49-fault-0-observedAttempts","run-browser-4#case-49-fault-0-missingAttempts","run-browser-4#case-49-fault-0-violations","run-browser-4#case-49-required-event-expectedCount","run-browser-4#case-49-required-event-observedCount","run-browser-4#case-49-required-event-missing","run-browser-4#case-49-required-event-violations","run-browser-4#case-49-required-event-0-id","run-browser-4#case-49-required-event-0-operationName","run-browser-4#case-49-required-event-0-receiptStored","run-browser-4#case-49-required-event-0-storedRowVerified","run-browser-4#case-49-goal-checkpoints","run-browser-4#case-49-checkpoints","run-browser-4#case-49-quality-errors","run-browser-4#case-49-diagnostic-errors","run-browser-4#case-49-missing-signals","run-browser-4#case-49-unexpected-browser-errors","run-browser-4#case-49-complete-goals","run-browser-4#case-49-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 중복 제출/취소 잠금, draft보존, 부적합 사진 거절·기존 사진없음, 정상 사진 로드와 owner row/reload를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L58","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L83"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"feature-round-trip, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/case.json#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-050-8-0","app-source-current#CASE-050-8-1","app-source-current#CASE-050-8-2","app-source-current#CASE-050-8-3","run-browser-4#case-49-checkpoints","run-browser-4#case-49-quality-errors","run-browser-4#case-49-diagnostic-errors","run-browser-4#case-49-missing-signals","run-browser-4#case-49-unexpected-browser-errors","run-browser-4#case-49-complete-goals","run-browser-4#case-49-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 실패 후 재시도 편집창의 아이디 draft가 유실되는 결함 실제 DOM에 대응하는 대표 control 'case050-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-050-profile-edit-failure-retry/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-050-9-0","app-source-current#CASE-050-9-1","run-browser-4#case-49-control-0-normal-value","run-browser-4#case-49-control-0-normal","run-browser-4#case-49-control-0-negative-value","run-browser-4#case-49-control-0-negative","run-browser-4#case-49-control-0-restored-value","run-browser-4#case-49-control-0-restored","run-browser-4#case-49-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-050-10-0","app-source-current#CASE-050-10-1","app-source-current#CASE-050-10-2","app-source-current#CASE-050-10-3","run-browser-4#case-49-rpc-observers","run-browser-4#case-49-cleanup-completed","run-browser-4#case-49-cleanup-resources","run-browser-4#case-49-listener-owners","run-browser-4#case-49-page-0-pageClosed","run-browser-4#case-49-page-0-routeCleanup","run-browser-4#case-49-page-0-observerDisposal","run-browser-4#case-49-page-0-currentPending","run-browser-4#case-49-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 4352ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-050-11-0","app-source-current#CASE-050-11-1","app-source-current#CASE-050-11-2","run-browser-4#case-49-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-050-12-0","app-source-current#CASE-050-12-1","app-source-current#CASE-050-12-2","app-source-current#CASE-050-12-3","run-browser-4#case-49-checkpoints","run-browser-4#case-49-quality-errors","run-browser-4#case-49-diagnostic-errors","run-browser-4#case-49-missing-signals","run-browser-4#case-49-unexpected-browser-errors","run-browser-4#case-49-complete-goals","run-browser-4#case-49-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L10","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-050-14-0","app-source-current#CASE-050-14-1","app-source-current#CASE-050-14-2","app-source-current#CASE-050-14-3","run-browser-4#case-49-checkpoints","run-browser-4#case-49-quality-errors","run-browser-4#case-49-diagnostic-errors","run-browser-4#case-49-missing-signals","run-browser-4#case-49-unexpected-browser-errors","run-browser-4#case-49-complete-goals","run-browser-4#case-49-control-records","run-browser-4#case-49-native-status","run-browser-4#case-49-retry","run-browser-4#case-49-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-050-15-0","app-source-current#CASE-050-15-1","app-source-current#CASE-050-15-2","app-source-current#CASE-050-15-3","run-browser-4#case-49-diagnostic-count","run-browser-4#case-49-diagnostic-revision","run-browser-4#case-49-diagnostic-runId","run-browser-4#case-49-diagnostic-attempt","run-browser-4#case-49-diagnostic-project","run-browser-4#case-49-diagnostic-locale","run-browser-4#case-49-diagnostic-timezone","run-browser-4#case-49-diagnostic-startedAt","run-browser-4#case-49-diagnostic-finishedAt","run-browser-4#case-49-diagnostic-cleanupStage","run-browser-4#case-49-diagnostic-status","run-browser-4#case-49-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-051","title":"CASE-051 an unsuccessful account link return preserves the original identity and permits profile reentry","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L4","checks":{"1":{"status":"P","reason":"정적 의미 확인: 제공자 실패 복귀 파라미터를 앱에 전달한 뒤 기존 login owner/identity 보존과 일회성 안내·URL 정리를 검사한다. 실제 외부 연결 과정은 범위 밖이다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L51"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:23.487Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 feature-round-trip, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-051-2-0","app-source-current#CASE-051-2-1","app-source-current#CASE-051-2-2","app-source-current#CASE-051-2-3","run-browser-4#case-50-diagnostic-count","run-browser-4#case-50-diagnostic-revision","run-browser-4#case-50-diagnostic-runId","run-browser-4#case-50-diagnostic-attempt","run-browser-4#case-50-diagnostic-project","run-browser-4#case-50-diagnostic-locale","run-browser-4#case-50-diagnostic-timezone","run-browser-4#case-50-diagnostic-startedAt","run-browser-4#case-50-diagnostic-finishedAt","run-browser-4#case-50-diagnostic-cleanupStage","run-browser-4#case-50-diagnostic-status","run-browser-4#case-50-diagnostic-sessionDate","run-browser-4#case-50-checkpoints","run-browser-4#case-50-quality-errors","run-browser-4#case-50-diagnostic-errors","run-browser-4#case-50-missing-signals","run-browser-4#case-50-unexpected-browser-errors","run-browser-4#case-50-complete-goals","run-browser-4#case-50-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 feature-round-trip, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-051-3-0","app-source-current#CASE-051-3-1","app-source-current#CASE-051-3-2","app-source-current#CASE-051-3-3","run-browser-4#case-50-rpc-observers","run-browser-4#case-50-cleanup-completed","run-browser-4#case-50-cleanup-resources","run-browser-4#case-50-listener-owners","run-browser-4#case-50-page-0-pageClosed","run-browser-4#case-50-page-0-routeCleanup","run-browser-4#case-50-page-0-observerDisposal","run-browser-4#case-50-page-0-currentPending","run-browser-4#case-50-page-0-previousDocumentPending","run-browser-4#case-50-checkpoints","run-browser-4#case-50-quality-errors","run-browser-4#case-50-diagnostic-errors","run-browser-4#case-50-missing-signals","run-browser-4#case-50-unexpected-browser-errors","run-browser-4#case-50-complete-goals","run-browser-4#case-50-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 복귀 URL을 실제 profile 흐름에서 소비한 뒤 toast/URL/Auth 재조회와 reload 상태를 확인한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L63"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 준비한 owner와 비어있지 않은 기존 identity IDs, 정확 실패 안내/URL 파라미터 부재를 정답으로 삼는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L65"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-051 an unsuccessful account link return preserves the original identity and permits profile reentry: 실제 완료한 필수 상황·목표 checkpoint는 feature-round-trip, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 실패한 계정 연결이 원래 Auth identity를 제거하는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-051-6-0","app-source-current#CASE-051-6-1","app-source-current#CASE-051-6-2","app-source-current#CASE-051-6-3","run-browser-4#case-50-required-event-expectedCount","run-browser-4#case-50-required-event-observedCount","run-browser-4#case-50-required-event-missing","run-browser-4#case-50-required-event-violations","run-browser-4#case-50-required-event-0-id","run-browser-4#case-50-required-event-0-operationName","run-browser-4#case-50-required-event-0-receiptStored","run-browser-4#case-50-required-event-0-storedRowVerified","run-browser-4#case-50-goal-checkpoints","run-browser-4#case-50-checkpoints","run-browser-4#case-50-quality-errors","run-browser-4#case-50-diagnostic-errors","run-browser-4#case-50-missing-signals","run-browser-4#case-50-unexpected-browser-errors","run-browser-4#case-50-complete-goals","run-browser-4#case-50-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 연결 해제 UI 미제공, 같은 Auth/profile owner, 신원 목록 불변, reload 후 안내 중복 발행 없음까지 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L18","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L65"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"feature-round-trip, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/case.json#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-051-8-0","app-source-current#CASE-051-8-1","app-source-current#CASE-051-8-2","app-source-current#CASE-051-8-3","run-browser-4#case-50-checkpoints","run-browser-4#case-50-quality-errors","run-browser-4#case-50-diagnostic-errors","run-browser-4#case-50-missing-signals","run-browser-4#case-50-unexpected-browser-errors","run-browser-4#case-50-complete-goals","run-browser-4#case-50-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 실패한 계정 연결이 원래 Auth identity를 제거하는 결함 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case051-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-051-account-link-return-identity-preservation/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-051-9-0","app-source-current#CASE-051-9-1","run-browser-4#case-50-control-0-normal-value","run-browser-4#case-50-control-0-normal","run-browser-4#case-50-control-0-negative-value","run-browser-4#case-50-control-0-negative","run-browser-4#case-50-control-0-restored-value","run-browser-4#case-50-control-0-restored","run-browser-4#case-50-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-051-10-0","app-source-current#CASE-051-10-1","app-source-current#CASE-051-10-2","app-source-current#CASE-051-10-3","run-browser-4#case-50-rpc-observers","run-browser-4#case-50-cleanup-completed","run-browser-4#case-50-cleanup-resources","run-browser-4#case-50-listener-owners","run-browser-4#case-50-page-0-pageClosed","run-browser-4#case-50-page-0-routeCleanup","run-browser-4#case-50-page-0-observerDisposal","run-browser-4#case-50-page-0-currentPending","run-browser-4#case-50-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 3814ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-051-11-0","app-source-current#CASE-051-11-1","app-source-current#CASE-051-11-2","run-browser-4#case-50-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-051-12-0","app-source-current#CASE-051-12-1","app-source-current#CASE-051-12-2","app-source-current#CASE-051-12-3","run-browser-4#case-50-checkpoints","run-browser-4#case-50-quality-errors","run-browser-4#case-50-diagnostic-errors","run-browser-4#case-50-missing-signals","run-browser-4#case-50-unexpected-browser-errors","run-browser-4#case-50-complete-goals","run-browser-4#case-50-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-051-14-0","app-source-current#CASE-051-14-1","app-source-current#CASE-051-14-2","app-source-current#CASE-051-14-3","run-browser-4#case-50-checkpoints","run-browser-4#case-50-quality-errors","run-browser-4#case-50-diagnostic-errors","run-browser-4#case-50-missing-signals","run-browser-4#case-50-unexpected-browser-errors","run-browser-4#case-50-complete-goals","run-browser-4#case-50-control-records","run-browser-4#case-50-native-status","run-browser-4#case-50-retry","run-browser-4#case-50-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-051-15-0","app-source-current#CASE-051-15-1","app-source-current#CASE-051-15-2","app-source-current#CASE-051-15-3","run-browser-4#case-50-diagnostic-count","run-browser-4#case-50-diagnostic-revision","run-browser-4#case-50-diagnostic-runId","run-browser-4#case-50-diagnostic-attempt","run-browser-4#case-50-diagnostic-project","run-browser-4#case-50-diagnostic-locale","run-browser-4#case-50-diagnostic-timezone","run-browser-4#case-50-diagnostic-startedAt","run-browser-4#case-50-diagnostic-finishedAt","run-browser-4#case-50-diagnostic-cleanupStage","run-browser-4#case-50-diagnostic-status","run-browser-4#case-50-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-052","title":"CASE-052 failed likes roll back and failed comments retain their draft before successful UI retry","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L5","checks":{"1":{"status":"P","reason":"정적 의미 확인: 좋아요/댓글/팔로우의 첫 실패와 실제 UI 재시도·DB 단일 저장·reload를 연결한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L68","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L95"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:27.397Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 feature-round-trip, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-052-2-0","app-source-current#CASE-052-2-1","app-source-current#CASE-052-2-2","app-source-current#CASE-052-2-3","run-browser-4#case-51-diagnostic-count","run-browser-4#case-51-diagnostic-revision","run-browser-4#case-51-diagnostic-runId","run-browser-4#case-51-diagnostic-attempt","run-browser-4#case-51-diagnostic-project","run-browser-4#case-51-diagnostic-locale","run-browser-4#case-51-diagnostic-timezone","run-browser-4#case-51-diagnostic-startedAt","run-browser-4#case-51-diagnostic-finishedAt","run-browser-4#case-51-diagnostic-cleanupStage","run-browser-4#case-51-diagnostic-status","run-browser-4#case-51-diagnostic-sessionDate","run-browser-4#case-51-checkpoints","run-browser-4#case-51-quality-errors","run-browser-4#case-51-diagnostic-errors","run-browser-4#case-51-missing-signals","run-browser-4#case-51-unexpected-browser-errors","run-browser-4#case-51-complete-goals","run-browser-4#case-51-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 feature-round-trip, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-052-3-0","app-source-current#CASE-052-3-1","app-source-current#CASE-052-3-2","app-source-current#CASE-052-3-3","run-browser-4#case-51-rpc-observers","run-browser-4#case-51-cleanup-completed","run-browser-4#case-51-cleanup-resources","run-browser-4#case-51-listener-owners","run-browser-4#case-51-page-0-pageClosed","run-browser-4#case-51-page-0-routeCleanup","run-browser-4#case-51-page-0-observerDisposal","run-browser-4#case-51-page-0-currentPending","run-browser-4#case-51-page-0-previousDocumentPending","run-browser-4#case-51-checkpoints","run-browser-4#case-51-quality-errors","run-browser-4#case-51-diagnostic-errors","run-browser-4#case-51-missing-signals","run-browser-4#case-51-unexpected-browser-errors","run-browser-4#case-51-complete-goals","run-browser-4#case-51-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 각 실패 요청의 started→잠금/낙관 표시→release→오류/복구 상태를 확인한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L53","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L68","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L70"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: aria-pressed false→true→false, 입력 comment와 owner/friend/session IDs, DB 각1개를 독립 기대값으로 삼는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L86"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-052 failed likes roll back and failed comments retain their draft before successful UI retry: 실제 완료한 필수 상황·목표 checkpoint는 feature-round-trip, journey-completion이다. 선언한 실패 declared-post-403-1:POST /rest/v1/rpc/set_session_like_v1; declared-post-400-1:POST /rest/v1/rpc/add_session_comment_v1; declared-post-503-1:POST /rest/v1/rpc/unfollow_user_v1의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=3와 누락/위반0도 확인했다. 목표: 좋아요 실패 뒤 optimistic 선택 표시가 false로 되돌아오지 않는 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-052-6-0","app-source-current#CASE-052-6-1","app-source-current#CASE-052-6-2","app-source-current#CASE-052-6-3","run-browser-4#case-51-fault-0-id","run-browser-4#case-51-fault-0-method","run-browser-4#case-51-fault-0-path","run-browser-4#case-51-fault-0-status","run-browser-4#case-51-fault-0-requestCount","run-browser-4#case-51-fault-0-requiredAttempts","run-browser-4#case-51-fault-0-observedAttempts","run-browser-4#case-51-fault-0-missingAttempts","run-browser-4#case-51-fault-0-violations","run-browser-4#case-51-fault-1-id","run-browser-4#case-51-fault-1-method","run-browser-4#case-51-fault-1-path","run-browser-4#case-51-fault-1-status","run-browser-4#case-51-fault-1-requestCount","run-browser-4#case-51-fault-1-requiredAttempts","run-browser-4#case-51-fault-1-observedAttempts","run-browser-4#case-51-fault-1-missingAttempts","run-browser-4#case-51-fault-1-violations","run-browser-4#case-51-fault-2-id","run-browser-4#case-51-fault-2-method","run-browser-4#case-51-fault-2-path","run-browser-4#case-51-fault-2-status","run-browser-4#case-51-fault-2-requestCount","run-browser-4#case-51-fault-2-requiredAttempts","run-browser-4#case-51-fault-2-observedAttempts","run-browser-4#case-51-fault-2-missingAttempts","run-browser-4#case-51-fault-2-violations","run-browser-4#case-51-required-event-expectedCount","run-browser-4#case-51-required-event-observedCount","run-browser-4#case-51-required-event-missing","run-browser-4#case-51-required-event-violations","run-browser-4#case-51-required-event-0-id","run-browser-4#case-51-required-event-0-operationName","run-browser-4#case-51-required-event-0-receiptStored","run-browser-4#case-51-required-event-0-storedRowVerified","run-browser-4#case-51-required-event-1-id","run-browser-4#case-51-required-event-1-operationName","run-browser-4#case-51-required-event-1-receiptStored","run-browser-4#case-51-required-event-1-storedRowVerified","run-browser-4#case-51-required-event-2-id","run-browser-4#case-51-required-event-2-operationName","run-browser-4#case-51-required-event-2-receiptStored","run-browser-4#case-51-required-event-2-storedRowVerified","run-browser-4#case-51-goal-checkpoints","run-browser-4#case-51-checkpoints","run-browser-4#case-51-quality-errors","run-browser-4#case-51-diagnostic-errors","run-browser-4#case-51-missing-signals","run-browser-4#case-51-unexpected-browser-errors","run-browser-4#case-51-complete-goals","run-browser-4#case-51-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 보류 중 버튼잠금, 좋아요 rollback·실패 DB0, 댓글 draft 유지·중복0, 팔로우 실패 불변, reload 단일 댓글을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L97"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"feature-round-trip, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/case.json#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-052-8-0","app-source-current#CASE-052-8-1","app-source-current#CASE-052-8-2","app-source-current#CASE-052-8-3","run-browser-4#case-51-checkpoints","run-browser-4#case-51-quality-errors","run-browser-4#case-51-diagnostic-errors","run-browser-4#case-51-missing-signals","run-browser-4#case-51-unexpected-browser-errors","run-browser-4#case-51-complete-goals","run-browser-4#case-51-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 좋아요 실패 뒤 optimistic 선택 표시가 false로 되돌아오지 않는 결함 실제 DOM에 대응하는 대표 control 'case052-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-052-feed-reaction-failure-recovery/regression.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-052-9-0","app-source-current#CASE-052-9-1","run-browser-4#case-51-control-0-normal-value","run-browser-4#case-51-control-0-normal","run-browser-4#case-51-control-0-negative-value","run-browser-4#case-51-control-0-negative","run-browser-4#case-51-control-0-restored-value","run-browser-4#case-51-control-0-restored","run-browser-4#case-51-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-052-10-0","app-source-current#CASE-052-10-1","app-source-current#CASE-052-10-2","app-source-current#CASE-052-10-3","run-browser-4#case-51-rpc-observers","run-browser-4#case-51-cleanup-completed","run-browser-4#case-51-cleanup-resources","run-browser-4#case-51-listener-owners","run-browser-4#case-51-page-0-pageClosed","run-browser-4#case-51-page-0-routeCleanup","run-browser-4#case-51-page-0-observerDisposal","run-browser-4#case-51-page-0-currentPending","run-browser-4#case-51-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 5758ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-052-11-0","app-source-current#CASE-052-11-1","app-source-current#CASE-052-11-2","run-browser-4#case-51-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-052-12-0","app-source-current#CASE-052-12-1","app-source-current#CASE-052-12-2","app-source-current#CASE-052-12-3","run-browser-4#case-51-checkpoints","run-browser-4#case-51-quality-errors","run-browser-4#case-51-diagnostic-errors","run-browser-4#case-51-missing-signals","run-browser-4#case-51-unexpected-browser-errors","run-browser-4#case-51-complete-goals","run-browser-4#case-51-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-052-14-0","app-source-current#CASE-052-14-1","app-source-current#CASE-052-14-2","app-source-current#CASE-052-14-3","run-browser-4#case-51-checkpoints","run-browser-4#case-51-quality-errors","run-browser-4#case-51-diagnostic-errors","run-browser-4#case-51-missing-signals","run-browser-4#case-51-unexpected-browser-errors","run-browser-4#case-51-complete-goals","run-browser-4#case-51-control-records","run-browser-4#case-51-native-status","run-browser-4#case-51-retry","run-browser-4#case-51-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-052-15-0","app-source-current#CASE-052-15-1","app-source-current#CASE-052-15-2","app-source-current#CASE-052-15-3","run-browser-4#case-51-diagnostic-count","run-browser-4#case-51-diagnostic-revision","run-browser-4#case-51-diagnostic-runId","run-browser-4#case-51-diagnostic-attempt","run-browser-4#case-51-diagnostic-project","run-browser-4#case-51-diagnostic-locale","run-browser-4#case-51-diagnostic-timezone","run-browser-4#case-51-diagnostic-startedAt","run-browser-4#case-51-diagnostic-finishedAt","run-browser-4#case-51-diagnostic-cleanupStage","run-browser-4#case-51-diagnostic-status","run-browser-4#case-51-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-053","title":"CASE-053 UI group creation and invitation acceptance survive reload and revoked membership leaves the open group","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L8","checks":{"1":{"status":"P","reason":"정적 의미 확인: 두 사용자의 실제 그룹 생성/초대수락 뒤 권한 회수와 열린 화면 제거·서버 재진입 거절을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L84"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:33.331Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 feature-round-trip, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-053-2-0","app-source-current#CASE-053-2-1","app-source-current#CASE-053-2-2","app-source-current#CASE-053-2-3","run-browser-4#case-52-diagnostic-count","run-browser-4#case-52-diagnostic-revision","run-browser-4#case-52-diagnostic-runId","run-browser-4#case-52-diagnostic-attempt","run-browser-4#case-52-diagnostic-project","run-browser-4#case-52-diagnostic-locale","run-browser-4#case-52-diagnostic-timezone","run-browser-4#case-52-diagnostic-startedAt","run-browser-4#case-52-diagnostic-finishedAt","run-browser-4#case-52-diagnostic-cleanupStage","run-browser-4#case-52-diagnostic-status","run-browser-4#case-52-diagnostic-sessionDate","run-browser-4#case-52-checkpoints","run-browser-4#case-52-quality-errors","run-browser-4#case-52-diagnostic-errors","run-browser-4#case-52-missing-signals","run-browser-4#case-52-unexpected-browser-errors","run-browser-4#case-52-complete-goals","run-browser-4#case-52-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 feature-round-trip, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 3개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-053-3-0","app-source-current#CASE-053-3-1","app-source-current#CASE-053-3-2","app-source-current#CASE-053-3-3","run-browser-4#case-52-rpc-observers","run-browser-4#case-52-cleanup-completed","run-browser-4#case-52-cleanup-resources","run-browser-4#case-52-listener-owners","run-browser-4#case-52-page-0-pageClosed","run-browser-4#case-52-page-0-routeCleanup","run-browser-4#case-52-page-0-observerDisposal","run-browser-4#case-52-page-0-currentPending","run-browser-4#case-52-page-0-previousDocumentPending","run-browser-4#case-52-page-1-pageClosed","run-browser-4#case-52-page-1-routeCleanup","run-browser-4#case-52-page-1-observerDisposal","run-browser-4#case-52-page-1-currentPending","run-browser-4#case-52-page-1-previousDocumentPending","run-browser-4#case-52-checkpoints","run-browser-4#case-52-quality-errors","run-browser-4#case-52-diagnostic-errors","run-browser-4#case-52-missing-signals","run-browser-4#case-52-unexpected-browser-errors","run-browser-4#case-52-complete-goals","run-browser-4#case-52-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 수정 확인: dashboard.group이 실제 표시된 뒤 해당 화면 내부의 알림 버튼을 선택한다. 화면 전환 직후 전역 visible 버튼을 집어 이전 화면 버튼을 기다리던 모호한 범위를 제거했다. 그룹 초대/수락/철회 단언은 보존되며 새 실행 대기다. 권한회수 전 현재 문서 attendance 초기응답의200/finished를먼저확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L69"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 준비된 owner/member ID 정확집합, 철회 후 멤버0과 SQLSTATE42501이 독립 oracle다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L87"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-053 UI group creation and invitation acceptance survive reload and revoked membership leaves the open group: 실제 완료한 필수 상황·목표 checkpoint는 feature-round-trip, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 목표: 가입 철회 후 서버에 멤버 행이 남는 권한 폐기 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-053-6-0","app-source-current#CASE-053-6-1","app-source-current#CASE-053-6-2","app-source-current#CASE-053-6-3","run-browser-4#case-52-goal-checkpoints","run-browser-4#case-52-checkpoints","run-browser-4#case-52-quality-errors","run-browser-4#case-52-diagnostic-errors","run-browser-4#case-52-missing-signals","run-browser-4#case-52-unexpected-browser-errors","run-browser-4#case-52-complete-goals","run-browser-4#case-52-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 중복 멤버 없음, 알림소멸, reload 유지 후 열린 lounge/그룹목록 제거와 서버42501을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L96"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"feature-round-trip, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/case.json#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-053-8-0","app-source-current#CASE-053-8-1","app-source-current#CASE-053-8-2","app-source-current#CASE-053-8-3","run-browser-4#case-52-checkpoints","run-browser-4#case-52-quality-errors","run-browser-4#case-52-diagnostic-errors","run-browser-4#case-52-missing-signals","run-browser-4#case-52-unexpected-browser-errors","run-browser-4#case-52-complete-goals","run-browser-4#case-52-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"membership 제거 후 해당 사용자·그룹 RPC의 권한 거절을 빠뜨리는 SQL 결함을 정상→기존 목표 단언 실패→원본 복원 정상으로 확인했다. 실제 기대/관측값 불일치·정확한 최초 단언 위치·자동 재시도0·소유 자원 정리·SQL 정의/소유자/ACL 복원을 검증했다. 모든 가능한 결함을 증명하는 뜻은 아니다. 실제 SQL 주입·정확한 첫 예외·복원 readback은 원본 파일에 고정했고, 같은 후보의 공통 판정기 회귀가 미주입/생존/시간초과/다른 예외/정리 실패를 거절한 결과를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-053-group-invite-ui-membership-revocation/regression.spec.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L137"],"evidenceRefs":["case053-permission-normal#goal-matched","case053-permission-normal#goal-expected","case053-permission-normal#goal-actual","case053-permission-normal#goal-target","case053-permission-normal#sql-original","case053-permission-normal#sql-restored","case053-permission-normal#sql-restored-hash","case053-permission-normal#native-first-attempt","case053-permission-normal#native-status","case053-permission-normal#owned-cleanup","case053-permission-normal#cleanup-stage","case053-permission-normal#cleanup-failure","case053-permission-normal#quality-status","case053-permission-mutant#goal-matched","case053-permission-mutant#goal-expected","case053-permission-mutant#goal-actual","case053-permission-mutant#goal-target","case053-permission-mutant#sql-original","case053-permission-mutant#sql-restored","case053-permission-mutant#sql-restored-hash","case053-permission-mutant#native-first-attempt","case053-permission-mutant#native-status","case053-permission-mutant#owned-cleanup","case053-permission-mutant#cleanup-stage","case053-permission-mutant#cleanup-failure","case053-permission-mutant#sql-applied","case053-permission-mutant#native-first-error-location","case053-permission-restored#goal-matched","case053-permission-restored#goal-expected","case053-permission-restored#goal-actual","case053-permission-restored#goal-target","case053-permission-restored#sql-original","case053-permission-restored#sql-restored","case053-permission-restored#sql-restored-hash","case053-permission-restored#native-first-attempt","case053-permission-restored#native-status","case053-permission-restored#owned-cleanup","case053-permission-restored#cleanup-stage","case053-permission-restored#cleanup-failure","case053-permission-restored#quality-status","app-node-93d4cad6#line-3845-helper-regression","app-node-93d4cad6#line-3846-helper-regression","app-node-93d4cad6#line-3846-enforcement-regression","app-node-93d4cad6#line-3847-helper-regression","app-node-93d4cad6#line-3847-enforcement-regression","app-node-93d4cad6#line-3848-helper-regression","app-node-93d4cad6#line-3849-helper-regression","app-node-93d4cad6#line-3863-helper-regression","app-node-93d4cad6#line-3863-enforcement-regression","app-node-93d4cad6#line-3864-helper-regression","app-node-93d4cad6#line-3864-enforcement-regression","app-node-93d4cad6#line-3865-helper-regression","app-node-93d4cad6#line-3865-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 3개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-053-10-0","app-source-current#CASE-053-10-1","app-source-current#CASE-053-10-2","app-source-current#CASE-053-10-3","run-browser-4#case-52-rpc-observers","run-browser-4#case-52-cleanup-completed","run-browser-4#case-52-cleanup-resources","run-browser-4#case-52-listener-owners","run-browser-4#case-52-page-0-pageClosed","run-browser-4#case-52-page-0-routeCleanup","run-browser-4#case-52-page-0-observerDisposal","run-browser-4#case-52-page-0-currentPending","run-browser-4#case-52-page-0-previousDocumentPending","run-browser-4#case-52-page-1-pageClosed","run-browser-4#case-52-page-1-routeCleanup","run-browser-4#case-52-page-1-observerDisposal","run-browser-4#case-52-page-1-currentPending","run-browser-4#case-52-page-1-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 4820ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-053-11-0","app-source-current#CASE-053-11-1","app-source-current#CASE-053-11-2","run-browser-4#case-52-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-053-12-0","app-source-current#CASE-053-12-1","app-source-current#CASE-053-12-2","app-source-current#CASE-053-12-3","run-browser-4#case-52-checkpoints","run-browser-4#case-52-quality-errors","run-browser-4#case-52-diagnostic-errors","run-browser-4#case-52-missing-signals","run-browser-4#case-52-unexpected-browser-errors","run-browser-4#case-52-complete-goals","run-browser-4#case-52-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-053-14-0","app-source-current#CASE-053-14-1","app-source-current#CASE-053-14-2","app-source-current#CASE-053-14-3","run-browser-4#case-52-checkpoints","run-browser-4#case-52-quality-errors","run-browser-4#case-52-diagnostic-errors","run-browser-4#case-52-missing-signals","run-browser-4#case-52-unexpected-browser-errors","run-browser-4#case-52-complete-goals","run-browser-4#case-52-control-records","run-browser-4#case-52-native-status","run-browser-4#case-52-retry","run-browser-4#case-52-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-053-15-0","app-source-current#CASE-053-15-1","app-source-current#CASE-053-15-2","app-source-current#CASE-053-15-3","run-browser-4#case-52-diagnostic-count","run-browser-4#case-52-diagnostic-revision","run-browser-4#case-52-diagnostic-runId","run-browser-4#case-52-diagnostic-attempt","run-browser-4#case-52-diagnostic-project","run-browser-4#case-52-diagnostic-locale","run-browser-4#case-52-diagnostic-timezone","run-browser-4#case-52-diagnostic-startedAt","run-browser-4#case-52-diagnostic-finishedAt","run-browser-4#case-52-diagnostic-cleanupStage","run-browser-4#case-52-diagnostic-status","run-browser-4#case-52-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-054","title":"CASE-054 composed catalog search and failed archive retry preserve historical facts and restore the exercise","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L5","checks":{"1":{"status":"P","reason":"정적 의미 확인: 로컬 IME 검색의 최종어·빈결과와 실제 archive 실패/재시도/복원 후 과거 원본 불변을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L68"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:38.290Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 feature-round-trip, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L20","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-054-2-0","app-source-current#CASE-054-2-1","app-source-current#CASE-054-2-2","app-source-current#CASE-054-2-3","run-browser-4#case-53-diagnostic-count","run-browser-4#case-53-diagnostic-revision","run-browser-4#case-53-diagnostic-runId","run-browser-4#case-53-diagnostic-attempt","run-browser-4#case-53-diagnostic-project","run-browser-4#case-53-diagnostic-locale","run-browser-4#case-53-diagnostic-timezone","run-browser-4#case-53-diagnostic-startedAt","run-browser-4#case-53-diagnostic-finishedAt","run-browser-4#case-53-diagnostic-cleanupStage","run-browser-4#case-53-diagnostic-status","run-browser-4#case-53-diagnostic-sessionDate","run-browser-4#case-53-checkpoints","run-browser-4#case-53-quality-errors","run-browser-4#case-53-diagnostic-errors","run-browser-4#case-53-missing-signals","run-browser-4#case-53-unexpected-browser-errors","run-browser-4#case-53-complete-goals","run-browser-4#case-53-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 feature-round-trip, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-054-3-0","app-source-current#CASE-054-3-1","app-source-current#CASE-054-3-2","app-source-current#CASE-054-3-3","run-browser-4#case-53-rpc-observers","run-browser-4#case-53-cleanup-completed","run-browser-4#case-53-cleanup-resources","run-browser-4#case-53-listener-owners","run-browser-4#case-53-page-0-pageClosed","run-browser-4#case-53-page-0-routeCleanup","run-browser-4#case-53-page-0-observerDisposal","run-browser-4#case-53-page-0-currentPending","run-browser-4#case-53-page-0-previousDocumentPending","run-browser-4#case-53-checkpoints","run-browser-4#case-53-quality-errors","run-browser-4#case-53-diagnostic-errors","run-browser-4#case-53-missing-signals","run-browser-4#case-53-unexpected-browser-errors","run-browser-4#case-53-complete-goals","run-browser-4#case-53-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: composition 이벤트와 화면 결과, 실제 archive 첫 요청 도착/오류, 상태변화·재진입으로 순서를 제어한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L63"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 검색어 한글/존재하지않는검색어, active=false→true 및 작업 전 원본 ID/값 불변은 제품 계산 재호출이 아닌 입력·보존 계약이다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L68"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-054 composed catalog search and failed archive retry preserve historical facts and restore the exercise: 실제 완료한 필수 상황·목표 checkpoint는 feature-round-trip, journey-completion이다. 선언한 실패 declared-post-503-1:POST /rest/v1/rpc/set_own_custom_exercise_active의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 종목 보관이 과거 운동 원본 세트 값을 바꾸는 금지 부작용의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-054-6-0","app-source-current#CASE-054-6-1","app-source-current#CASE-054-6-2","app-source-current#CASE-054-6-3","run-browser-4#case-53-fault-0-id","run-browser-4#case-53-fault-0-method","run-browser-4#case-53-fault-0-path","run-browser-4#case-53-fault-0-status","run-browser-4#case-53-fault-0-requestCount","run-browser-4#case-53-fault-0-requiredAttempts","run-browser-4#case-53-fault-0-observedAttempts","run-browser-4#case-53-fault-0-missingAttempts","run-browser-4#case-53-fault-0-violations","run-browser-4#case-53-required-event-expectedCount","run-browser-4#case-53-required-event-observedCount","run-browser-4#case-53-required-event-missing","run-browser-4#case-53-required-event-violations","run-browser-4#case-53-required-event-0-id","run-browser-4#case-53-required-event-0-operationName","run-browser-4#case-53-required-event-0-receiptStored","run-browser-4#case-53-required-event-0-storedRowVerified","run-browser-4#case-53-goal-checkpoints","run-browser-4#case-53-checkpoints","run-browser-4#case-53-quality-errors","run-browser-4#case-53-diagnostic-errors","run-browser-4#case-53-missing-signals","run-browser-4#case-53-unexpected-browser-errors","run-browser-4#case-53-complete-goals","run-browser-4#case-53-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 빈 검색결과, 실패 후 재시도 가능, active 카탈로그 제외·관리 목록 유지, 과거 기록 전체 ID/값 보존과 reload/복원을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L68"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"feature-round-trip, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/case.json#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-054-8-0","app-source-current#CASE-054-8-1","app-source-current#CASE-054-8-2","app-source-current#CASE-054-8-3","run-browser-4#case-53-checkpoints","run-browser-4#case-53-quality-errors","run-browser-4#case-53-diagnostic-errors","run-browser-4#case-53-missing-signals","run-browser-4#case-53-unexpected-browser-errors","run-browser-4#case-53-complete-goals","run-browser-4#case-53-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 종목 보관이 과거 운동 원본 세트 값을 바꾸는 금지 부작용 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case054-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-054-catalog-search-archive-recovery/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-054-9-0","app-source-current#CASE-054-9-1","run-browser-4#case-53-control-0-normal-value","run-browser-4#case-53-control-0-normal","run-browser-4#case-53-control-0-negative-value","run-browser-4#case-53-control-0-negative","run-browser-4#case-53-control-0-restored-value","run-browser-4#case-53-control-0-restored","run-browser-4#case-53-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-054-10-0","app-source-current#CASE-054-10-1","app-source-current#CASE-054-10-2","app-source-current#CASE-054-10-3","run-browser-4#case-53-rpc-observers","run-browser-4#case-53-cleanup-completed","run-browser-4#case-53-cleanup-resources","run-browser-4#case-53-listener-owners","run-browser-4#case-53-page-0-pageClosed","run-browser-4#case-53-page-0-routeCleanup","run-browser-4#case-53-page-0-observerDisposal","run-browser-4#case-53-page-0-currentPending","run-browser-4#case-53-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6173ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-054-11-0","app-source-current#CASE-054-11-1","app-source-current#CASE-054-11-2","run-browser-4#case-53-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-054-12-0","app-source-current#CASE-054-12-1","app-source-current#CASE-054-12-2","app-source-current#CASE-054-12-3","run-browser-4#case-53-checkpoints","run-browser-4#case-53-quality-errors","run-browser-4#case-53-diagnostic-errors","run-browser-4#case-53-missing-signals","run-browser-4#case-53-unexpected-browser-errors","run-browser-4#case-53-complete-goals","run-browser-4#case-53-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-054-14-0","app-source-current#CASE-054-14-1","app-source-current#CASE-054-14-2","app-source-current#CASE-054-14-3","run-browser-4#case-53-checkpoints","run-browser-4#case-53-quality-errors","run-browser-4#case-53-diagnostic-errors","run-browser-4#case-53-missing-signals","run-browser-4#case-53-unexpected-browser-errors","run-browser-4#case-53-complete-goals","run-browser-4#case-53-control-records","run-browser-4#case-53-native-status","run-browser-4#case-53-retry","run-browser-4#case-53-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-054-15-0","app-source-current#CASE-054-15-1","app-source-current#CASE-054-15-2","app-source-current#CASE-054-15-3","run-browser-4#case-53-diagnostic-count","run-browser-4#case-53-diagnostic-revision","run-browser-4#case-53-diagnostic-runId","run-browser-4#case-53-diagnostic-attempt","run-browser-4#case-53-diagnostic-project","run-browser-4#case-53-diagnostic-locale","run-browser-4#case-53-diagnostic-timezone","run-browser-4#case-53-diagnostic-startedAt","run-browser-4#case-53-diagnostic-finishedAt","run-browser-4#case-53-diagnostic-cleanupStage","run-browser-4#case-53-diagnostic-status","run-browser-4#case-53-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-055","title":"CASE-055 desktop Wodup upload runs the real job and a mixed duplicate batch cannot partially overwrite facts","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L12","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 Wodup 업로드/Storage/Edge job의 최초 인입, 중복혼합 전체거절, 수정재시도와 원본 보존을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L93"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:44.572Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 feature-round-trip, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-055-2-0","app-source-current#CASE-055-2-1","app-source-current#CASE-055-2-2","app-source-current#CASE-055-2-3","run-browser-4#case-54-diagnostic-count","run-browser-4#case-54-diagnostic-revision","run-browser-4#case-54-diagnostic-runId","run-browser-4#case-54-diagnostic-attempt","run-browser-4#case-54-diagnostic-project","run-browser-4#case-54-diagnostic-locale","run-browser-4#case-54-diagnostic-timezone","run-browser-4#case-54-diagnostic-startedAt","run-browser-4#case-54-diagnostic-finishedAt","run-browser-4#case-54-diagnostic-cleanupStage","run-browser-4#case-54-diagnostic-status","run-browser-4#case-54-diagnostic-sessionDate","run-browser-4#case-54-checkpoints","run-browser-4#case-54-quality-errors","run-browser-4#case-54-diagnostic-errors","run-browser-4#case-54-missing-signals","run-browser-4#case-54-unexpected-browser-errors","run-browser-4#case-54-complete-goals","run-browser-4#case-54-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 feature-round-trip, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 5개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-055-3-0","app-source-current#CASE-055-3-1","app-source-current#CASE-055-3-2","app-source-current#CASE-055-3-3","run-browser-4#case-54-rpc-observers","run-browser-4#case-54-cleanup-completed","run-browser-4#case-54-cleanup-resources","run-browser-4#case-54-listener-owners","run-browser-4#case-54-page-0-pageClosed","run-browser-4#case-54-page-0-routeCleanup","run-browser-4#case-54-page-0-observerDisposal","run-browser-4#case-54-page-0-currentPending","run-browser-4#case-54-page-0-previousDocumentPending","run-browser-4#case-54-checkpoints","run-browser-4#case-54-quality-errors","run-browser-4#case-54-diagnostic-errors","run-browser-4#case-54-missing-signals","run-browser-4#case-54-unexpected-browser-errors","run-browser-4#case-54-complete-goals","run-browser-4#case-54-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 실제 batch terminal 상태를 10초 poll로 관측하고 exact 실패 안내 뒤 readback·수정 업로드를 진행한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L82"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: sourceRow의 62.5kg×7, first/second title과 원본 fact ID/값 불변·정확 batch 상태를 독립 oracle로 삼는다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L7","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L97"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-055 desktop Wodup upload runs the real job and a mixed duplicate batch cannot partially overwrite facts: 실제 완료한 필수 상황·목표 checkpoint는 feature-round-trip, journey-completion이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: 중복 혼합 batch 실패가 기존 운동 일부를 바꾸는 원자성 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L69","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-055-6-0","app-source-current#CASE-055-6-1","app-source-current#CASE-055-6-2","app-source-current#CASE-055-6-3","run-browser-4#case-54-required-event-expectedCount","run-browser-4#case-54-required-event-observedCount","run-browser-4#case-54-required-event-missing","run-browser-4#case-54-required-event-violations","run-browser-4#case-54-required-event-0-id","run-browser-4#case-54-required-event-0-operationName","run-browser-4#case-54-required-event-0-receiptStored","run-browser-4#case-54-required-event-0-storedRowVerified","run-browser-4#case-54-goal-checkpoints","run-browser-4#case-54-checkpoints","run-browser-4#case-54-quality-errors","run-browser-4#case-54-diagnostic-errors","run-browser-4#case-54-missing-signals","run-browser-4#case-54-unexpected-browser-errors","run-browser-4#case-54-complete-goals","run-browser-4#case-54-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: mixed duplicate 때 새 session0·기존 facts 불변, corrected batch 성공, 세 batch terminal 상태, 원본 storage 파일과 export를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L113"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"feature-round-trip, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/case.json#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-055-8-0","app-source-current#CASE-055-8-1","app-source-current#CASE-055-8-2","app-source-current#CASE-055-8-3","run-browser-4#case-54-checkpoints","run-browser-4#case-54-quality-errors","run-browser-4#case-54-diagnostic-errors","run-browser-4#case-54-missing-signals","run-browser-4#case-54-unexpected-browser-errors","run-browser-4#case-54-complete-goals","run-browser-4#case-54-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"중복이 섞인 Wodup 입력에서 기존 항목만 제외하고 신규 부분을 잘못 수락하는 SQL 결함을 정상→기존 목표 단언 실패→원본 복원 정상으로 확인했다. 실제 기대/관측값 불일치·정확한 최초 단언 위치·자동 재시도0·소유 자원 정리·SQL 정의/소유자/ACL 복원을 검증했다. 모든 가능한 결함을 증명하는 뜻은 아니다. 실제 SQL 주입·정확한 첫 예외·복원 readback은 원본 파일에 고정했고, 같은 후보의 공통 판정기 회귀가 미주입/생존/시간초과/다른 예외/정리 실패를 거절한 결과를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-055-wodup-ui-import-job-round-trip/regression.spec.mjs#L53","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L137","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/productMutantExperiment.mjs#L29"],"evidenceRefs":["case055-atomicity-normal#goal-matched","case055-atomicity-normal#goal-expected","case055-atomicity-normal#goal-actual","case055-atomicity-normal#goal-target","case055-atomicity-normal#sql-original","case055-atomicity-normal#sql-restored","case055-atomicity-normal#sql-restored-hash","case055-atomicity-normal#native-first-attempt","case055-atomicity-normal#native-status","case055-atomicity-normal#owned-cleanup","case055-atomicity-normal#cleanup-stage","case055-atomicity-normal#cleanup-failure","case055-atomicity-normal#quality-status","case055-atomicity-mutant#goal-matched","case055-atomicity-mutant#goal-expected","case055-atomicity-mutant#goal-actual","case055-atomicity-mutant#goal-target","case055-atomicity-mutant#sql-original","case055-atomicity-mutant#sql-restored","case055-atomicity-mutant#sql-restored-hash","case055-atomicity-mutant#native-first-attempt","case055-atomicity-mutant#native-status","case055-atomicity-mutant#owned-cleanup","case055-atomicity-mutant#cleanup-stage","case055-atomicity-mutant#cleanup-failure","case055-atomicity-mutant#sql-applied","case055-atomicity-mutant#native-first-error-location","case055-atomicity-restored#goal-matched","case055-atomicity-restored#goal-expected","case055-atomicity-restored#goal-actual","case055-atomicity-restored#goal-target","case055-atomicity-restored#sql-original","case055-atomicity-restored#sql-restored","case055-atomicity-restored#sql-restored-hash","case055-atomicity-restored#native-first-attempt","case055-atomicity-restored#native-status","case055-atomicity-restored#owned-cleanup","case055-atomicity-restored#cleanup-stage","case055-atomicity-restored#cleanup-failure","case055-atomicity-restored#quality-status","app-node-93d4cad6#line-3845-helper-regression","app-node-93d4cad6#line-3846-helper-regression","app-node-93d4cad6#line-3846-enforcement-regression","app-node-93d4cad6#line-3847-helper-regression","app-node-93d4cad6#line-3847-enforcement-regression","app-node-93d4cad6#line-3848-helper-regression","app-node-93d4cad6#line-3849-helper-regression","app-node-93d4cad6#line-3863-helper-regression","app-node-93d4cad6#line-3863-enforcement-regression","app-node-93d4cad6#line-3864-helper-regression","app-node-93d4cad6#line-3864-enforcement-regression","app-node-93d4cad6#line-3865-helper-regression","app-node-93d4cad6#line-3865-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 5개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-055-10-0","app-source-current#CASE-055-10-1","app-source-current#CASE-055-10-2","app-source-current#CASE-055-10-3","run-browser-4#case-54-rpc-observers","run-browser-4#case-54-cleanup-completed","run-browser-4#case-54-cleanup-resources","run-browser-4#case-54-listener-owners","run-browser-4#case-54-page-0-pageClosed","run-browser-4#case-54-page-0-routeCleanup","run-browser-4#case-54-page-0-observerDisposal","run-browser-4#case-54-page-0-currentPending","run-browser-4#case-54-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 9284ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-055-11-0","app-source-current#CASE-055-11-1","app-source-current#CASE-055-11-2","run-browser-4#case-54-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-055-12-0","app-source-current#CASE-055-12-1","app-source-current#CASE-055-12-2","app-source-current#CASE-055-12-3","run-browser-4#case-54-checkpoints","run-browser-4#case-54-quality-errors","run-browser-4#case-54-diagnostic-errors","run-browser-4#case-54-missing-signals","run-browser-4#case-54-unexpected-browser-errors","run-browser-4#case-54-complete-goals","run-browser-4#case-54-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-055-14-0","app-source-current#CASE-055-14-1","app-source-current#CASE-055-14-2","app-source-current#CASE-055-14-3","run-browser-4#case-54-checkpoints","run-browser-4#case-54-quality-errors","run-browser-4#case-54-diagnostic-errors","run-browser-4#case-54-missing-signals","run-browser-4#case-54-unexpected-browser-errors","run-browser-4#case-54-complete-goals","run-browser-4#case-54-control-records","run-browser-4#case-54-native-status","run-browser-4#case-54-retry","run-browser-4#case-54-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-055-15-0","app-source-current#CASE-055-15-1","app-source-current#CASE-055-15-2","app-source-current#CASE-055-15-3","run-browser-4#case-54-diagnostic-count","run-browser-4#case-54-diagnostic-revision","run-browser-4#case-54-diagnostic-runId","run-browser-4#case-54-diagnostic-attempt","run-browser-4#case-54-diagnostic-project","run-browser-4#case-54-diagnostic-locale","run-browser-4#case-54-diagnostic-timezone","run-browser-4#case-54-diagnostic-startedAt","run-browser-4#case-54-diagnostic-finishedAt","run-browser-4#case-54-diagnostic-cleanupStage","run-browser-4#case-54-diagnostic-status","run-browser-4#case-54-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-056","title":"Motra UI import atomic recovery and ordinary-user permission denial","repository":"admin","approval":"U","source":"https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L76","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 관리자 UI의 Motra 업로드·혼합 중복 원자 거절·수정 재시도와 일반 계정 UI 및 서버 RPC 거절의 두 필수 시나리오다. 응답 control과 선택된 로컬 SQL 제품 결함 실험의 계층을 구분한다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L76","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L102","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L124","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L151","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L158"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"정적 준비 확인: localhost만 허용하고 명시한 로컬 자격으로 별도 Auth owner·UUID 입력을 생성한다. 고정 DATE는 업로드 원본 날짜이며 항상 과거라는 UI 분기에 의존하지 않는다. 실행 SHA·runId·실제 시작 시각·시간대 기록 경로가 있다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L6","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L11","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L20","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L69","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/playwright.config.mjs#L16","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L80"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"3":{"status":"P","reason":"정적 독립성 확인: 각 시나리오가 자체 사용자와 인증을 준비하며 조회·삭제를 해당 owner/id로 한정한다. workers=1인 관리자 실행 범위이며 로컬 제품 결함은 전용 sandbox와 해당 owner로 한정하고 SQL 정의·owner·ACL을 복원한다. 실제 정리 성공 판정은 별도 실행 입력이다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L20","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L30","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L58","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/playwright.config.mjs#L11","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L51","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"4":{"status":"P","reason":"정적 순서 확인: UI 표시·업로드 응답·DB 값·권한 거절을 확인한다. reload 전에 실제 요청 terminal을 기다리며 response headers만으로 끝났다고 하지 않는다. 0ms browser task barrier는 임의의 안정 시간 추정이 아니며 준비의 정답은 도메인 단언이 담당한다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L96","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L106","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L129","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L140","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L153","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L20","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L38","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L52"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"독립 정답 확인: 고정 입력 62.5×5/77.5×3, first/second 제목과 행 수, 기존 ID·값 불변, SQLSTATE42501 및 is_admin=false를 직접 단언한다. UI 결과끼리 비교하는 것만으로 합격시키지 않는다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L69","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L99","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L111","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L130","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L134","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L146","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L160","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L165"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"37aa 후보의 정상·복원 각 phase에서 관리자 혼합 중복 입력과 일반 계정 거절을 실제 관측했다. atomicity 정상 DB에는 기존 1개만 남고, permission 정상 RPC는42501을 반환했다. 두 하위 시나리오의 응답 control은 해당 소유 요청에 각각1회 적용됐으며 SQL mutant phase와 정상 결과를 구분한다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L104","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L106","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L111","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L116","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L161","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L165","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L167"],"evidenceRefs":["case056-atomicity-normal#scenario-0-overlap-9","case056-atomicity-normal#scenario-0-control-0","case056-atomicity-normal#scenario-1-control-0","case056-atomicity-mutant#scenario-0-overlap-9","case056-atomicity-mutant#scenario-1-control-0","case056-atomicity-restored#scenario-0-overlap-9","case056-atomicity-restored#scenario-0-control-0","case056-atomicity-restored#scenario-1-control-0","case056-permission-normal#scenario-0-overlap-9","case056-permission-normal#scenario-0-control-0","case056-permission-normal#scenario-1-control-0","case056-permission-normal#real-permission-denial","case056-permission-mutant#scenario-0-overlap-9","case056-permission-mutant#scenario-0-control-0","case056-permission-restored#scenario-0-overlap-9","case056-permission-restored#scenario-0-control-0","case056-permission-restored#scenario-1-control-0"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"관련 경계 확인: 혼합 중복으로 새 session이 생기지 않음·기존 하위 ID/값 불변, 수정 파일만 성공, reload 후 원본 유지, 일반 계정 UI 탭0 및 server42501을 필수 단언한다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L111","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L112","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L124","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L130","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L136","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L145","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L155","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L156","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L160","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L165"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"37aa 정상·복원 4개 phase의 필수 두 시나리오 8회에서 각각7/4 proof 완료, reporter problems=[], pending 오류0을 확인했다. 실제 Playwright 공통 회귀는 빈·삼킨·시간초과·미완료 proof를 거절했다. 의도한 mutant 실패를 정상 통과에 합산하지 않는다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/quality.mjs#L6","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/quality.mjs#L54","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L37","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L57","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L72","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L45","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L53"],"evidenceRefs":["case056-atomicity-normal#report-problems","case056-atomicity-normal#scenario-0-proofs","case056-atomicity-normal#scenario-1-proofs","case056-atomicity-restored#report-problems","case056-atomicity-restored#scenario-0-proofs","case056-atomicity-restored#scenario-1-proofs","case056-permission-normal#report-problems","case056-permission-normal#scenario-0-proofs","case056-permission-normal#scenario-1-proofs","case056-permission-restored#report-problems","case056-permission-restored#scenario-0-proofs","case056-permission-restored#scenario-1-proofs","admin-shared-37aa8f0c#line-31-enforcement-regression","admin-shared-37aa8f0c#line-32-enforcement-regression","admin-shared-37aa8f0c#line-35-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"실제 로컬 SQL 결함 두 개를 적용해 정상→같은 목표 단언 실패→복원 정상 대조를 확인했다. Motra 중복을 건너뛰는 결함은 변경하지 않은 spec111의 원자 거절 단언에서 기대 행1개/실제2개로, 권한 해제 결함은 spec165의 기대42501/실제undefined로 실패했다. 각 native 최초 오류는 그 목표에 정확히 대응하며 준비·문법·timeout 실패가 아니다. SQL 정의 hash가 실제 변경되고 원래 정의·owner·ACL로 복원됐다. 같은37aa의 요청 terminal, 실패 정리, control 및 product-mutant 거짓 통과 거절 회귀가 함께 통과했다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L104","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L110","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L111","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L161","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L164","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L165","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L14","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L45","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L97","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L104","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L138","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/scripts/run-case-product-mutant.mjs#L58"],"evidenceRefs":["case056-atomicity-normal#goal-matched","case056-atomicity-mutant#goal-matched","case056-atomicity-mutant#sql-applied","case056-atomicity-restored#goal-matched","case056-permission-normal#goal-matched","case056-permission-mutant#goal-matched","case056-permission-mutant#sql-applied","case056-permission-restored#goal-matched","admin-shared-37aa8f0c#line-27-helper-regression","admin-shared-37aa8f0c#line-28-helper-regression","admin-shared-37aa8f0c#line-29-helper-regression","admin-shared-37aa8f0c#line-30-helper-regression","admin-shared-37aa8f0c#line-31-helper-regression","admin-shared-37aa8f0c#line-32-helper-regression","admin-shared-37aa8f0c#line-33-helper-regression","admin-shared-37aa8f0c#line-34-helper-regression","admin-shared-37aa8f0c#line-35-helper-regression","admin-shared-37aa8f0c#line-36-helper-regression","admin-shared-37aa8f0c#line-40-helper-regression","admin-shared-37aa8f0c#line-41-helper-regression","admin-shared-37aa8f0c#line-42-helper-regression","admin-shared-37aa8f0c#line-44-helper-regression","admin-shared-37aa8f0c#line-45-helper-regression","admin-shared-37aa8f0c#line-56-helper-regression","admin-shared-37aa8f0c#line-57-helper-regression","admin-shared-37aa8f0c#line-58-helper-regression","admin-shared-37aa8f0c#line-59-helper-regression","admin-shared-37aa8f0c#line-60-helper-regression","admin-shared-37aa8f0c#line-61-helper-regression","admin-shared-37aa8f0c#line-62-helper-regression","admin-shared-37aa8f0c#line-63-helper-regression","admin-shared-37aa8f0c#line-64-helper-regression","admin-shared-37aa8f0c#line-65-helper-regression","admin-shared-37aa8f0c#line-66-helper-regression","admin-shared-37aa8f0c#line-67-helper-regression","admin-shared-37aa8f0c#line-68-helper-regression","admin-shared-37aa8f0c#line-69-helper-regression","admin-shared-37aa8f0c#line-70-helper-regression","admin-shared-37aa8f0c#line-71-helper-regression","admin-shared-37aa8f0c#line-72-helper-regression","admin-shared-37aa8f0c#line-73-helper-regression","admin-shared-37aa8f0c#line-74-helper-regression","admin-shared-37aa8f0c#line-75-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"두 제품 결함 실험의 정상·목표 실패·복원 총12개 하위 실행 모두 소유 정리6개가 passed/settled, pending 요청0, 실제 요청 terminal 완료였다. SQL 정의·owner·ACL도 원복됐다. 같은37aa의 실제 본문 실패+정리 실패 분리, 자원 실패 뒤 나머지 정리 진행, SQL restore 실패 보존 회귀로 성공 경로만 확인한 한계를 보완했다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L30","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L35","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L40","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/CASE-056-motra-ui-import-atomic-recovery.spec.mjs#L46","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L35","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L67","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L70","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L77","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L90","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L21","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L59","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/quality.mjs#L20","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/quality.mjs#L38"],"evidenceRefs":["case056-atomicity-normal#sql-restored","case056-atomicity-normal#sql-restored-hash","case056-atomicity-normal#scenario-0-cleanup","case056-atomicity-normal#scenario-0-pending","case056-atomicity-normal#scenario-1-cleanup","case056-atomicity-normal#scenario-1-pending","case056-atomicity-mutant#sql-restored","case056-atomicity-mutant#sql-restored-hash","case056-atomicity-mutant#scenario-0-cleanup","case056-atomicity-mutant#scenario-0-pending","case056-atomicity-mutant#scenario-1-cleanup","case056-atomicity-mutant#scenario-1-pending","case056-atomicity-restored#sql-restored","case056-atomicity-restored#sql-restored-hash","case056-atomicity-restored#scenario-0-cleanup","case056-atomicity-restored#scenario-0-pending","case056-atomicity-restored#scenario-1-cleanup","case056-atomicity-restored#scenario-1-pending","case056-permission-normal#sql-restored","case056-permission-normal#sql-restored-hash","case056-permission-normal#scenario-0-cleanup","case056-permission-normal#scenario-0-pending","case056-permission-normal#scenario-1-cleanup","case056-permission-normal#scenario-1-pending","case056-permission-mutant#sql-restored","case056-permission-mutant#sql-restored-hash","case056-permission-mutant#scenario-0-cleanup","case056-permission-mutant#scenario-0-pending","case056-permission-mutant#scenario-1-cleanup","case056-permission-mutant#scenario-1-pending","case056-permission-restored#sql-restored","case056-permission-restored#sql-restored-hash","case056-permission-restored#scenario-0-cleanup","case056-permission-restored#scenario-0-pending","case056-permission-restored#scenario-1-cleanup","case056-permission-restored#scenario-1-pending","admin-shared-37aa8f0c#line-33-cleanup-failure-path","admin-shared-37aa8f0c#line-36-cleanup-failure-path","admin-shared-37aa8f0c#line-60-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"37aa의 두 하위 시나리오를 포함한 정상·mutant·복원12실행의 준비+본문 native duration을 각각 읽었다. 최대2492ms로60초 이내이며 개별 준비를 제외한 bodyDuration만으로 판정하지 않았다. 정상 실행과 의도한 목표 실패는 별도 phase로 기록되어 있다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/playwright.config.mjs#L14","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/quality.mjs#L1","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L9","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L65","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L93"],"evidenceRefs":["case056-atomicity-normal#scenario-0-duration","case056-atomicity-normal#scenario-1-duration","case056-atomicity-mutant#scenario-0-duration","case056-atomicity-mutant#scenario-1-duration","case056-atomicity-restored#scenario-0-duration","case056-atomicity-restored#scenario-1-duration","case056-permission-normal#scenario-0-duration","case056-permission-normal#scenario-1-duration","case056-permission-mutant#scenario-0-duration","case056-permission-mutant#scenario-1-duration","case056-permission-restored#scenario-0-duration","case056-permission-restored#scenario-1-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"정적 상한: action/navigation/expect, SDK AbortSignal, control 각 단계, 개별 cleanup은10초다. 요청 대기는 하나의 deadline을 반복 루프 전체에서 재사용하며 SQL 준비/복원도각각공유10초deadline 안에서 statement_timeout과host deadline을 사용한다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/playwright.config.mjs#L15","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L40","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L38","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L40","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/controls.mjs#L24","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/controls.mjs#L27","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/controls.mjs#L32","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/controls.mjs#L38","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/quality.mjs#L30","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L80","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L127","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L141"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"13":{"status":"P","reason":"자동 CASE retries=0이고 필수 reporter가 retry/repeat/expectedStatus override를 거절한다. normal/mutant/restored는 각각 구분된 실험 phase와 runId이며 실패를 재시도 성공으로 바꾸는 기능이 아니다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/playwright.config.mjs#L12","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L33","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L79","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/scripts/run-case-product-mutant.mjs#L99"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"U","reason":"관리자 필수 두 시나리오와 reporter는 로컬37aa에서 실제 통과하고 skip/retry/누락 거절도 확인했다. 그러나 docs hosted CI의 private backend artifact 소비에 필요한 BARBELIC_BACKEND_ARTIFACTS_READ_TOKEN이 미등록이며 이 필수 경로의 hosted 실행 증거가 없다. 로컬 통과로 이 공백을 P로 바꾸지 않는다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/.github/workflows/ci.yml#L72","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/.github/workflows/ci.yml#L91","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/backend-fixture.lock.json#L1","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L26","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L72","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/reporter.mjs#L83"],"evidenceRefs":["admin-hosted-source#required-read-token","admin-shared-37aa8f0c#line-32-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"U","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"37aa 모든 phase에 실제SHA·runId·CASE·attempt0·locale/timezone·proof와 요청 id/tab/document-generation/terminal이 남았다. 원자성·권한 mutant의 최초 native 오류는 기존 목표 파일/행·기대/실제값과 일치하고 cleanup 오류와 분리됐다. 같은37aa 공통 회귀에서 최초본문 오류 보존, 정리오류 별도기록, 응답/진단의 민감 payload 생략을 확인했다.","sources":["https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L65","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L80","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/fixture.mjs#L90","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L8","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L16","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/requests.mjs#L21","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/controls.mjs#L4","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L129","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/e2e/support/productMutantExperiment.mjs#L171","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/scripts/run-case-product-mutant.mjs#L63","https://github.com/dekerd/Barbelic-docs/blob/37aa8f0cdc452e36346323eb0bce7ce3d1c77c83/admin/tests/adminE2eQuality.test.mjs#L119"],"evidenceRefs":["case056-atomicity-normal#run-id","case056-atomicity-normal#goal-target","case056-atomicity-normal#goal-expected","case056-atomicity-normal#goal-actual","case056-atomicity-normal#scenario-0-environment","case056-atomicity-normal#scenario-0-primary-errors","case056-atomicity-normal#scenario-0-cleanup-errors","case056-atomicity-normal#scenario-0-requests","case056-atomicity-normal#scenario-0-attempt","case056-atomicity-normal#scenario-1-environment","case056-atomicity-normal#scenario-1-primary-errors","case056-atomicity-normal#scenario-1-cleanup-errors","case056-atomicity-normal#scenario-1-requests","case056-atomicity-normal#scenario-1-attempt","case056-atomicity-mutant#run-id","case056-atomicity-mutant#goal-target","case056-atomicity-mutant#goal-expected","case056-atomicity-mutant#goal-actual","case056-atomicity-mutant#scenario-0-environment","case056-atomicity-mutant#scenario-0-primary-errors","case056-atomicity-mutant#scenario-0-cleanup-errors","case056-atomicity-mutant#scenario-0-requests","case056-atomicity-mutant#scenario-0-attempt","case056-atomicity-mutant#scenario-0-first-error","case056-atomicity-mutant#scenario-1-environment","case056-atomicity-mutant#scenario-1-primary-errors","case056-atomicity-mutant#scenario-1-cleanup-errors","case056-atomicity-mutant#scenario-1-requests","case056-atomicity-mutant#scenario-1-attempt","case056-atomicity-restored#run-id","case056-atomicity-restored#goal-target","case056-atomicity-restored#goal-expected","case056-atomicity-restored#goal-actual","case056-atomicity-restored#scenario-0-environment","case056-atomicity-restored#scenario-0-primary-errors","case056-atomicity-restored#scenario-0-cleanup-errors","case056-atomicity-restored#scenario-0-requests","case056-atomicity-restored#scenario-0-attempt","case056-atomicity-restored#scenario-1-environment","case056-atomicity-restored#scenario-1-primary-errors","case056-atomicity-restored#scenario-1-cleanup-errors","case056-atomicity-restored#scenario-1-requests","case056-atomicity-restored#scenario-1-attempt","case056-permission-normal#run-id","case056-permission-normal#goal-target","case056-permission-normal#goal-expected","case056-permission-normal#goal-actual","case056-permission-normal#scenario-0-environment","case056-permission-normal#scenario-0-primary-errors","case056-permission-normal#scenario-0-cleanup-errors","case056-permission-normal#scenario-0-requests","case056-permission-normal#scenario-0-attempt","case056-permission-normal#scenario-1-environment","case056-permission-normal#scenario-1-primary-errors","case056-permission-normal#scenario-1-cleanup-errors","case056-permission-normal#scenario-1-requests","case056-permission-normal#scenario-1-attempt","case056-permission-mutant#run-id","case056-permission-mutant#goal-target","case056-permission-mutant#goal-expected","case056-permission-mutant#goal-actual","case056-permission-mutant#scenario-0-environment","case056-permission-mutant#scenario-0-primary-errors","case056-permission-mutant#scenario-0-cleanup-errors","case056-permission-mutant#scenario-0-requests","case056-permission-mutant#scenario-0-attempt","case056-permission-mutant#scenario-1-environment","case056-permission-mutant#scenario-1-primary-errors","case056-permission-mutant#scenario-1-cleanup-errors","case056-permission-mutant#scenario-1-requests","case056-permission-mutant#scenario-1-attempt","case056-permission-mutant#scenario-1-first-error","case056-permission-restored#run-id","case056-permission-restored#goal-target","case056-permission-restored#goal-expected","case056-permission-restored#goal-actual","case056-permission-restored#scenario-0-environment","case056-permission-restored#scenario-0-primary-errors","case056-permission-restored#scenario-0-cleanup-errors","case056-permission-restored#scenario-0-requests","case056-permission-restored#scenario-0-attempt","case056-permission-restored#scenario-1-environment","case056-permission-restored#scenario-1-primary-errors","case056-permission-restored#scenario-1-cleanup-errors","case056-permission-restored#scenario-1-requests","case056-permission-restored#scenario-1-attempt","admin-shared-37aa8f0c#line-34-failure-diagnostic","admin-shared-37aa8f0c#line-36-failure-diagnostic","admin-shared-37aa8f0c#line-45-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"37aa8f0cdc452e36346323eb0bce7ce3d1c77c83","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-057","title":"CASE-057 export failure creates no download and UI retry downloads exact owner facts and identities","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L5","checks":{"1":{"status":"P","reason":"정적 의미 확인: 내보내기 첫 실패의 다운로드0과 실제 JSON 재시도/재진입의 owner·세션/하위 ID/값 보존을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L69"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:04:54.117Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 feature-round-trip, journey-completion의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-057-2-0","app-source-current#CASE-057-2-1","app-source-current#CASE-057-2-2","app-source-current#CASE-057-2-3","run-browser-4#case-56-diagnostic-count","run-browser-4#case-56-diagnostic-revision","run-browser-4#case-56-diagnostic-runId","run-browser-4#case-56-diagnostic-attempt","run-browser-4#case-56-diagnostic-project","run-browser-4#case-56-diagnostic-locale","run-browser-4#case-56-diagnostic-timezone","run-browser-4#case-56-diagnostic-startedAt","run-browser-4#case-56-diagnostic-finishedAt","run-browser-4#case-56-diagnostic-cleanupStage","run-browser-4#case-56-diagnostic-status","run-browser-4#case-56-diagnostic-sessionDate","run-browser-4#case-56-checkpoints","run-browser-4#case-56-quality-errors","run-browser-4#case-56-diagnostic-errors","run-browser-4#case-56-missing-signals","run-browser-4#case-56-unexpected-browser-errors","run-browser-4#case-56-complete-goals","run-browser-4#case-56-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 feature-round-trip, journey-completion 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-057-3-0","app-source-current#CASE-057-3-1","app-source-current#CASE-057-3-2","app-source-current#CASE-057-3-3","run-browser-4#case-56-rpc-observers","run-browser-4#case-56-cleanup-completed","run-browser-4#case-56-cleanup-resources","run-browser-4#case-56-listener-owners","run-browser-4#case-56-page-0-pageClosed","run-browser-4#case-56-page-0-routeCleanup","run-browser-4#case-56-page-0-observerDisposal","run-browser-4#case-56-page-0-currentPending","run-browser-4#case-56-page-0-previousDocumentPending","run-browser-4#case-56-checkpoints","run-browser-4#case-56-quality-errors","run-browser-4#case-56-diagnostic-errors","run-browser-4#case-56-missing-signals","run-browser-4#case-56-unexpected-browser-errors","run-browser-4#case-56-complete-goals","run-browser-4#case-56-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 실패 요청 도착→오류 dialog→download0, 사용자 export click의 실제 download event와 파일 stream 완료, reload 후 재다운로드를 관측한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L66","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L68"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 별도 owner fixture IDs와 raw DB facts, app/version 상수, 실패 다운로드0/첫 성공1이 독립 oracle다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L51"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"CASE-057 export failure creates no download and UI retry downloads exact owner facts and identities: 실제 완료한 필수 상황·목표 checkpoint는 feature-round-trip, journey-completion이다. 선언한 실패 declared-get-400-1:GET /rest/v1/exercise_archetypes?select=id%2Cname_ko%2Cname_en%2Cprimary_part%2Cpattern%2Crep_exercise_id%2Cis_active%2Csort_order%2Ccreated_at%2Cupdated_at&is_active=eq.true&order=sort_order.asc%2Cname_ko.asc의 실제 요청·시도 관측에서 missingAttempts/violations가 모두 비었다. 필수 복구 사건 observedCount=2와 누락/위반0도 확인했다. 목표: 다운로드 export에 다른 사용자의 기록이 섞이는 소유권 누출의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-057-6-0","app-source-current#CASE-057-6-1","app-source-current#CASE-057-6-2","app-source-current#CASE-057-6-3","run-browser-4#case-56-fault-0-id","run-browser-4#case-56-fault-0-method","run-browser-4#case-56-fault-0-path","run-browser-4#case-56-fault-0-status","run-browser-4#case-56-fault-0-requestCount","run-browser-4#case-56-fault-0-requiredAttempts","run-browser-4#case-56-fault-0-observedAttempts","run-browser-4#case-56-fault-0-missingAttempts","run-browser-4#case-56-fault-0-violations","run-browser-4#case-56-required-event-expectedCount","run-browser-4#case-56-required-event-observedCount","run-browser-4#case-56-required-event-missing","run-browser-4#case-56-required-event-violations","run-browser-4#case-56-required-event-0-id","run-browser-4#case-56-required-event-0-operationName","run-browser-4#case-56-required-event-0-receiptStored","run-browser-4#case-56-required-event-0-storedRowVerified","run-browser-4#case-56-required-event-1-id","run-browser-4#case-56-required-event-1-operationName","run-browser-4#case-56-required-event-1-receiptStored","run-browser-4#case-56-required-event-1-storedRowVerified","run-browser-4#case-56-goal-checkpoints","run-browser-4#case-56-checkpoints","run-browser-4#case-56-quality-errors","run-browser-4#case-56-diagnostic-errors","run-browser-4#case-56-missing-signals","run-browser-4#case-56-unexpected-browser-errors","run-browser-4#case-56-complete-goals","run-browser-4#case-56-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 부분/빈 파일 다운로드 없음, 다른 owner 전체 JSON 미포함, 원본 ID/값 보존·DB RLS 거절·reload export 동일성을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L59","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L69"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"feature-round-trip, journey-completion 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/case.json#L76","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-057-8-0","app-source-current#CASE-057-8-1","app-source-current#CASE-057-8-2","app-source-current#CASE-057-8-3","run-browser-4#case-56-checkpoints","run-browser-4#case-56-quality-errors","run-browser-4#case-56-diagnostic-errors","run-browser-4#case-56-missing-signals","run-browser-4#case-56-unexpected-browser-errors","run-browser-4#case-56-complete-goals","run-browser-4#case-56-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: 다운로드 export에 다른 사용자의 기록이 섞이는 소유권 누출 SDK가 읽는 실제 HTTP 응답1건에 대응하는 대표 control 'case057-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. HTTP 응답 경계의 결함 검출이며 실제 DB 제약을 제거한 제품 결함 실험으로 확대하지 않는다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-057-export-download-facts-retry/regression.spec.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-057-9-0","app-source-current#CASE-057-9-1","run-browser-4#case-56-control-0-normal-value","run-browser-4#case-56-control-0-normal","run-browser-4#case-56-control-0-negative-value","run-browser-4#case-56-control-0-negative","run-browser-4#case-56-control-0-restored-value","run-browser-4#case-56-control-0-restored","run-browser-4#case-56-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-057-10-0","app-source-current#CASE-057-10-1","app-source-current#CASE-057-10-2","app-source-current#CASE-057-10-3","run-browser-4#case-56-rpc-observers","run-browser-4#case-56-cleanup-completed","run-browser-4#case-56-cleanup-resources","run-browser-4#case-56-listener-owners","run-browser-4#case-56-page-0-pageClosed","run-browser-4#case-56-page-0-routeCleanup","run-browser-4#case-56-page-0-observerDisposal","run-browser-4#case-56-page-0-currentPending","run-browser-4#case-56-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 7466ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-057-11-0","app-source-current#CASE-057-11-1","app-source-current#CASE-057-11-2","run-browser-4#case-56-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-057-12-0","app-source-current#CASE-057-12-1","app-source-current#CASE-057-12-2","app-source-current#CASE-057-12-3","run-browser-4#case-56-checkpoints","run-browser-4#case-56-quality-errors","run-browser-4#case-56-diagnostic-errors","run-browser-4#case-56-missing-signals","run-browser-4#case-56-unexpected-browser-errors","run-browser-4#case-56-complete-goals","run-browser-4#case-56-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-057-14-0","app-source-current#CASE-057-14-1","app-source-current#CASE-057-14-2","app-source-current#CASE-057-14-3","run-browser-4#case-56-checkpoints","run-browser-4#case-56-quality-errors","run-browser-4#case-56-diagnostic-errors","run-browser-4#case-56-missing-signals","run-browser-4#case-56-unexpected-browser-errors","run-browser-4#case-56-complete-goals","run-browser-4#case-56-control-records","run-browser-4#case-56-native-status","run-browser-4#case-56-retry","run-browser-4#case-56-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-057-15-0","app-source-current#CASE-057-15-1","app-source-current#CASE-057-15-2","app-source-current#CASE-057-15-3","run-browser-4#case-56-diagnostic-count","run-browser-4#case-56-diagnostic-revision","run-browser-4#case-56-diagnostic-runId","run-browser-4#case-56-diagnostic-attempt","run-browser-4#case-56-diagnostic-project","run-browser-4#case-56-diagnostic-locale","run-browser-4#case-56-diagnostic-timezone","run-browser-4#case-56-diagnostic-startedAt","run-browser-4#case-56-diagnostic-finishedAt","run-browser-4#case-56-diagnostic-cleanupStage","run-browser-4#case-56-diagnostic-status","run-browser-4#case-56-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"CASE-058","title":"aborted IndexedDB enqueue preserves the input and a user retry saves once after recovery","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L10","checks":{"1":{"status":"P","reason":"정적 의미 확인: 실제 IDB enqueue transaction을 한 번 abort한 뒤 저장 실패·draft 보존 및 사용자 retry의 단일 저장·재진입을 검사한다. 대표 control의 별도 경계 한계는 #9에 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/case.json#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L25","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L82"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"2":{"status":"P","reason":"최종93d의 local-1788983964771-26036에서 chromium/ko-KR/Asia/Seoul, 시작 2026-09-09T20:05:01.728Z, 상대 날짜 2026-09-10를 기록했다. 소스가 정의한 일회용 계정·입력과 시작 화면을 준비한 뒤 checkpoint-1, checkpoint-2, checkpoint-3의 실제 완료까지 확인했다. 고정 시계나 이전 CASE 데이터로 준비를 대신하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L713","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L25","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-058-2-0","app-source-current#CASE-058-2-1","app-source-current#CASE-058-2-2","app-source-current#CASE-058-2-3","run-browser-4#case-57-diagnostic-count","run-browser-4#case-57-diagnostic-revision","run-browser-4#case-57-diagnostic-runId","run-browser-4#case-57-diagnostic-attempt","run-browser-4#case-57-diagnostic-project","run-browser-4#case-57-diagnostic-locale","run-browser-4#case-57-diagnostic-timezone","run-browser-4#case-57-diagnostic-startedAt","run-browser-4#case-57-diagnostic-finishedAt","run-browser-4#case-57-diagnostic-cleanupStage","run-browser-4#case-57-diagnostic-status","run-browser-4#case-57-diagnostic-sessionDate","run-browser-4#case-57-checkpoints","run-browser-4#case-57-quality-errors","run-browser-4#case-57-diagnostic-errors","run-browser-4#case-57-missing-signals","run-browser-4#case-57-unexpected-browser-errors","run-browser-4#case-57-complete-goals","run-browser-4#case-57-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"3":{"status":"P","reason":"최종 실행의 별도 browser shard/CASE 컨텍스트에서 자체 소유 계정·행을 준비하는 소스와 checkpoint-1, checkpoint-2, checkpoint-3 완료를 대조했다. 이 CASE의 정리 resource 2개가 모두 passed/settled이고 DB/Auth cleanup-readback 및 실제 페이지/리스너 종료가 확인됐다. 공용 backend를 쓰는 실행 순서를 전제하지 않으며 각 lane 격리 DB의 준비·첫시도 실행 증거와 연결한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L91","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-058-3-0","app-source-current#CASE-058-3-1","app-source-current#CASE-058-3-2","app-source-current#CASE-058-3-3","run-browser-4#case-57-rpc-observers","run-browser-4#case-57-cleanup-completed","run-browser-4#case-57-cleanup-resources","run-browser-4#case-57-listener-owners","run-browser-4#case-57-page-0-pageClosed","run-browser-4#case-57-page-0-routeCleanup","run-browser-4#case-57-page-0-observerDisposal","run-browser-4#case-57-page-0-currentPending","run-browser-4#case-57-page-0-previousDocumentPending","run-browser-4#case-57-checkpoints","run-browser-4#case-57-quality-errors","run-browser-4#case-57-diagnostic-errors","run-browser-4#case-57-missing-signals","run-browser-4#case-57-unexpected-browser-errors","run-browser-4#case-57-complete-goals","run-browser-4#case-57-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"4":{"status":"P","reason":"정적 순서 제어 확인: 실제 transaction.abort 횟수1과 저장실패 화면을 확인한 뒤 원래 prototype을 복원하여 사용자 저장 버튼으로 진행한다. 실제 사건 발생 여부의 현재 실행 판정은 #6 U와 분리한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L72"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"5":{"status":"P","reason":"정적 oracle 확인: 입력 title/완료한 exercise와 원래 operationId 불변, writes0→1/session0→1 및 60kg×5를 독립 비교한다. 앞뒤 보존 비교는 불변 요구의 oracle이며 단순 두 화면의 자기 일관성만을 통과 조건으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L25","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L53","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L54","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L82"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"6":{"status":"P","reason":"aborted IndexedDB enqueue preserves the input and a user retry saves once after recovery: 실제 완료한 필수 상황·목표 checkpoint는 checkpoint-1, checkpoint-2, checkpoint-3이다. 주입 등록만을 발생 증거로 삼지 않고 해당 checkpoint 안의 입력·화면·저장·재진입 단언의 실제 종료를 소스와 연결했다. 필수 복구 사건 observedCount=1와 누락/위반0도 확인했다. 목표: enqueue 실패 뒤 durable draft의 운동 입력을 지우는 보존 결함의 대표 control 또한 정확히1회 적용됐다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L450","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L66"],"evidenceRefs":["app-source-current#CASE-058-6-0","app-source-current#CASE-058-6-1","app-source-current#CASE-058-6-2","app-source-current#CASE-058-6-3","run-browser-4#case-57-required-event-expectedCount","run-browser-4#case-57-required-event-observedCount","run-browser-4#case-57-required-event-missing","run-browser-4#case-57-required-event-violations","run-browser-4#case-57-required-event-0-id","run-browser-4#case-57-required-event-0-operationName","run-browser-4#case-57-required-event-0-receiptStored","run-browser-4#case-57-required-event-0-storedRowVerified","run-browser-4#case-57-goal-checkpoints","run-browser-4#case-57-checkpoints","run-browser-4#case-57-quality-errors","run-browser-4#case-57-diagnostic-errors","run-browser-4#case-57-missing-signals","run-browser-4#case-57-unexpected-browser-errors","run-browser-4#case-57-complete-goals","run-browser-4#case-57-control-records"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"정적 경계 확인: 실패 시 outbox0·전송0·서버0, 성공으로 오인하지 않는 버튼/alert, retry 단일 receipt/record·draft제거를 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L50","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L77","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L82","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L86"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"8":{"status":"P","reason":"checkpoint-1, checkpoint-2, checkpoint-3 모두 실제 passed이고 단언 수가0보다 크다. 전체 필수 단언의 완료/중첩 poll을 판정한 quality.errors=[], diagnosticErrors=[], completion.missingSignals=[]이며 예상 밖 화면·브라우저·저장 오류0을 확인했다. 동일93d의 실제 Playwright bypass/빈·삼킨·미완료 단언 거절 회귀를 함께 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/case.json#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L91","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L126"],"evidenceRefs":["app-source-current#CASE-058-8-0","app-source-current#CASE-058-8-1","app-source-current#CASE-058-8-2","app-source-current#CASE-058-8-3","run-browser-4#case-57-checkpoints","run-browser-4#case-57-quality-errors","run-browser-4#case-57-diagnostic-errors","run-browser-4#case-57-missing-signals","run-browser-4#case-57-unexpected-browser-errors","run-browser-4#case-57-complete-goals","run-browser-4#case-57-control-records","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"목표: enqueue 실패 뒤 durable draft의 운동 입력을 지우는 보존 결함 소유 IndexedDB 행에 대응하는 대표 control 'case058-purpose-control'에서 같은 reader의 실제 normalActual=expected, negativeActual≠expected, restoredActual=expected이고 적용 횟수1/상태passed를 확인했다. 해당 관측 경계의 대표 결함 검출이며 모든 계층의 결함을 검사했다는 뜻은 아니다. 같은93d의 실제 DOM/IDB 및 요청 수명 회귀와 미적용·예외·시간초과·복수 적용을 거절하는 control 회귀가 통과했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/CASE-058-indexeddb-enqueue-failure/regression.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5"],"evidenceRefs":["app-source-current#CASE-058-9-0","app-source-current#CASE-058-9-1","run-browser-4#case-57-control-0-normal-value","run-browser-4#case-57-control-0-normal","run-browser-4#case-57-control-0-negative-value","run-browser-4#case-57-control-0-negative","run-browser-4#case-57-control-0-restored-value","run-browser-4#case-57-control-0-restored","run-browser-4#case-57-control-0-applied","app-shared-93d4cad6#line-2-helper-regression","app-shared-93d4cad6#line-3-helper-regression","app-shared-93d4cad6#line-9-helper-regression","app-shared-93d4cad6#line-18-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression","app-node-93d4cad6#line-3953-helper-regression","app-node-93d4cad6#line-3954-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"해당 CASE의 resource 2개 정리 passed/settled, DB/Auth cleanup-readback, 관찰한 모든 page 실제close와 CDP observer disposal completed/잔여0, 각 소유 listener remove/readback 잔여0, RPC observer disposed/pending0와 모든 관측RPC settled를 확인했다. 먼저 해제된 observer의 closed=false와 실제페이지종료 증거를 구분했다. 이전 문서 pending은 숨기지 않고 실제close 증거와 구분한다. 같은93d의 준비·본문·정리실패/취소·reload·등록직후throw 경로 및 실제 PostgreSQL 취소 회귀를 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L412","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L499","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L648","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L659","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownedPageListeners.mjs#L35"],"evidenceRefs":["app-source-current#CASE-058-10-0","app-source-current#CASE-058-10-1","app-source-current#CASE-058-10-2","app-source-current#CASE-058-10-3","run-browser-4#case-57-rpc-observers","run-browser-4#case-57-cleanup-completed","run-browser-4#case-57-cleanup-resources","run-browser-4#case-57-listener-owners","run-browser-4#case-57-page-0-pageClosed","run-browser-4#case-57-page-0-routeCleanup","run-browser-4#case-57-page-0-observerDisposal","run-browser-4#case-57-page-0-currentPending","run-browser-4#case-57-page-0-previousDocumentPending","app-shared-93d4cad6#line-10-cleanup-failure-path","app-shared-93d4cad6#line-11-cleanup-failure-path","app-shared-93d4cad6#line-14-cleanup-failure-path","app-shared-93d4cad6#line-15-cleanup-failure-path","app-shared-93d4cad6#line-16-cleanup-failure-path","app-node-93d4cad6#line-1551-cleanup-failure-path","app-node-93d4cad6#line-1713-cleanup-failure-path","app-node-93d4cad6#line-1714-cleanup-failure-path","app-precheck-93d4cad6#actual-backend-cancel-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"최초 시도0의 Playwright native duration은 6469ms로 개별 준비+본문을 포함해60초 이내다. 별도 사후 정리를 제외한 bodyDuration만으로 합격시키지 않았으며 현재 소스의60초 제한을 유지한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L93"],"evidenceRefs":["app-source-current#CASE-058-11-0","app-source-current#CASE-058-11-1","app-source-current#CASE-058-11-2","run-browser-4#case-57-native-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"최종 소스의 각 action/navigation/expect·SDK·조건 재조회는10초 이하인 하나의 deadline을 사용한다. 실제 실행에서 필수 단언/진단 오류0이며, 같은93d의 만료/취소·반복 stage 예산 갱신 거절과 실제 blocked PostgreSQL backend 종료/다른 연결 보존 검사를 확인했다. native 전체duration만으로 개별 대기 상한을 추정하지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/featureJourney.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L28","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-058-12-0","app-source-current#CASE-058-12-1","app-source-current#CASE-058-12-2","app-source-current#CASE-058-12-3","run-browser-4#case-57-checkpoints","run-browser-4#case-57-quality-errors","run-browser-4#case-57-diagnostic-errors","run-browser-4#case-57-missing-signals","run-browser-4#case-57-unexpected-browser-errors","run-browser-4#case-57-complete-goals","run-browser-4#case-57-control-records","app-node-93d4cad6#line-1548-enforcement-regression","app-node-93d4cad6#line-1602-enforcement-regression","app-node-93d4cad6#line-1603-enforcement-regression","app-precheck-93d4cad6#actual-backend-cancel-enforcement-regression","app-precheck-93d4cad6#owner-generation-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"13":{"status":"P","reason":"정적 현재 설정 retries=0이고 해당 CASE 소스에 CASE 전체 재시도 override가 없다. 한 CASE 안의 제품 복구 재전송/10초 polling과 runner의 자동 CASE 재시도를 구분한다. 실제 실행 attempt는 별도 runtime U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"}]},"14":{"status":"P","reason":"해당93d 최초 시도0에서 모든 필수 checkpoint/control/정리 증거가 완료됐고 skip/flaky/quality 오류가 없다. 4 browser shard56개+viewport22개를 같은 run에서 대조한 필수 e2e-evidence gate와 현재 소스의 skip/only/시간상향/단언누락 거절, 실제 Playwright 우회 거절, 필수 DB 취소2개 실행을 확인했다. 이 실행은 browser+viewport 부분 단계이며 전체 CI 통과로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/check-e2e-evidence.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/db/caseStatsCancellation.test.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/scripts/ci-local.mjs#L725","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/.github/workflows/policy-contract.yml#L261"],"evidenceRefs":["app-source-current#CASE-058-14-0","app-source-current#CASE-058-14-1","app-source-current#CASE-058-14-2","app-source-current#CASE-058-14-3","run-browser-4#case-57-checkpoints","run-browser-4#case-57-quality-errors","run-browser-4#case-57-diagnostic-errors","run-browser-4#case-57-missing-signals","run-browser-4#case-57-unexpected-browser-errors","run-browser-4#case-57-complete-goals","run-browser-4#case-57-control-records","run-browser-4#case-57-native-status","run-browser-4#case-57-retry","run-browser-4#case-57-quality-status","app-node-93d4cad6#line-1623-enforcement-regression","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression","app-node-93d4cad6#line-2287-enforcement-regression","app-precheck-93d4cad6#run-scope","app-precheck-93d4cad6#stage-static","app-precheck-93d4cad6#stage-unit-1","app-precheck-93d4cad6#stage-unit-2","app-precheck-93d4cad6#stage-database","app-precheck-93d4cad6#database-tests","app-precheck-93d4cad6#database-pass","app-precheck-93d4cad6#database-fail","app-precheck-93d4cad6#database-skipped","app-required-78-93d4cad6#run-scope","app-required-78-93d4cad6#stage-journey-build","app-required-78-93d4cad6#stage-browser-1-stack","app-required-78-93d4cad6#stage-browser-1","app-required-78-93d4cad6#stage-browser-2-stack","app-required-78-93d4cad6#stage-browser-2","app-required-78-93d4cad6#stage-browser-3-stack","app-required-78-93d4cad6#stage-browser-3","app-required-78-93d4cad6#stage-browser-4-stack","app-required-78-93d4cad6#stage-browser-4","app-required-78-93d4cad6#stage-viewport-stack","app-required-78-93d4cad6#stage-viewport","app-required-78-93d4cad6#stage-e2e-evidence"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"실제 진단1개에 최종SHA·CASE·runId·attempt0·project/locale/timezone·시각·정리단계와 요청/탭/문서세대, control의 기대·실제값 및 소유 미완료 작업 상태가 있다. 현재 정상 실행의 firstFailure.message/stack 및 cleanupFailure는 diagnosticValue의 명시적 undefined 표식이며 오류 내용이 없다. 관련 공통 실제 최초실패/teardown timeout 회귀는 두 오류를 별도 보존했다. 진단 가림 회귀도 확인해 자격과 URL 민감값을 결과에서 제외하는 범위를 검증했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L628","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L629","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L649","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L8","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/error-cases/support/fixture.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11"],"evidenceRefs":["app-source-current#CASE-058-15-0","app-source-current#CASE-058-15-1","app-source-current#CASE-058-15-2","app-source-current#CASE-058-15-3","run-browser-4#case-57-diagnostic-count","run-browser-4#case-57-diagnostic-revision","run-browser-4#case-57-diagnostic-runId","run-browser-4#case-57-diagnostic-attempt","run-browser-4#case-57-diagnostic-project","run-browser-4#case-57-diagnostic-locale","run-browser-4#case-57-diagnostic-timezone","run-browser-4#case-57-diagnostic-startedAt","run-browser-4#case-57-diagnostic-finishedAt","run-browser-4#case-57-diagnostic-cleanupStage","run-browser-4#case-57-diagnostic-status","run-browser-4#case-57-diagnostic-sessionDate","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-3951-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic","app-shared-93d4cad6#line-11-failure-diagnostic","app-shared-93d4cad6#line-22-failure-diagnostic","app-shared-93d4cad6#line-23-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"de0e7e316445debb763336687a72dfb3f6a0b59f3c8d610be73ed20c9c32ff43"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"74283c3799ec34ab5c41a553bcb6337cd1559431bb91aa85edeaaa08d20aca9e"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V0 compact 320x568","title":"V0 compact 320x568","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V0의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 320px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"320×568 compact 실제 context에서 home/calendar/volume/feed/profile를 각각 연 뒤 폭·넘침·배경을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v0-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v0-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v0-column-width/native-status","viewport-local-1788983964771-26036#viewport-v0-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v0-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v0-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v0-column-width가 'V0 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 320 → 결함 352(불일치) → 복원 320(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L60","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v0-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v0-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v0-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v0-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v0-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v0-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v0-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4040ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v0-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v0-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v0-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v0-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v0-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v0-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v0-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v0-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v0-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V1 phone 360x780","title":"V1 phone 360x780","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 360px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"360×780 phone 실제 context에서 5개 탭을 각각 연 뒤 폭·넘침·배경을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v1-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v1-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v1-column-width/native-status","viewport-local-1788983964771-26036#viewport-v1-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v1-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v1-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v1-column-width가 'V1 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 360 → 결함 392(불일치) → 복원 360(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L65","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v1-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v1-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v1-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v1-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v1-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v1-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v1-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4439ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v1-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v1-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v1-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v1-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v1-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v1-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v1-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v1-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v1-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V2 phone 375x667","title":"V2 phone 375x667","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V2의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 375px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"375×667 phone 실제 context에서 5개 탭을 각각 연 뒤 폭·넘침·배경을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v2-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v2-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v2-column-width/native-status","viewport-local-1788983964771-26036#viewport-v2-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v2-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v2-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v2-column-width가 'V2 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 375 → 결함 407(불일치) → 복원 375(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v2-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v2-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v2-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v2-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v2-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v2-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v2-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4077ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v2-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v2-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v2-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v2-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v2-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v2-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v2-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v2-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v2-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V3 phone 390x844","title":"V3 phone 390x844","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V3의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 390px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"390×844 phone 실제 context에서 5개 탭을 각각 연 뒤 폭·넘침·배경을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v3-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v3-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v3-column-width/native-status","viewport-local-1788983964771-26036#viewport-v3-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v3-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v3-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v3-column-width가 'V3 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 390 → 결함 422(불일치) → 복원 390(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v3-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v3-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v3-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v3-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v3-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v3-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v3-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4553ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v3-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v3-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v3-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v3-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v3-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v3-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v3-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v3-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v3-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V5 phone 440x956","title":"V5 phone 440x956","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V5의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 440px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"440×956 phone 실제 context에서 5개 탭을 각각 연 뒤 폭·넘침·배경을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v5-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v5-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v5-column-width/native-status","viewport-local-1788983964771-26036#viewport-v5-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v5-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v5-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v5-column-width가 'V5 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 440 → 결함 472(불일치) → 복원 440(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L80","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v5-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v5-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v5-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v5-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v5-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v5-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v5-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4519ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v5-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v5-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v5-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v5-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v5-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v5-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v5-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v5-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v5-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V6 wide-touch 820x1180","title":"V6 wide-touch 820x1180","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V6의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 600px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"820×1180 wide-touch 실제 context에서 5개 탭과 고정 600px 컬럼을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v6-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v6-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v6-column-width/native-status","viewport-local-1788983964771-26036#viewport-v6-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v6-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v6-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v6-column-width가 'V6 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 600 → 결함 632(불일치) → 복원 600(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v6-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v6-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v6-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v6-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v6-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v6-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v6-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4084ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v6-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v6-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v6-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v6-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v6-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v6-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v6-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v6-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v6-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V7 wide-touch 984x1092","title":"V7 wide-touch 984x1092","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V7의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 600px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"984×1092 wide-touch 실제 context에서 5개 탭과 고정 600px 컬럼을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v7-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v7-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v7-column-width/native-status","viewport-local-1788983964771-26036#viewport-v7-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v7-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v7-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v7-column-width가 'V7 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 600 → 결함 632(불일치) → 복원 600(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L90","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v7-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v7-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v7-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v7-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v7-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v7-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v7-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4174ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v7-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v7-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v7-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v7-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v7-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v7-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v7-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v7-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v7-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"V8 wide-touch 932x440","title":"V8 wide-touch 932x440","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: V8의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 600px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"932×440 landscape wide-touch 실제 context에서 5개 탭과 고정 600px 컬럼을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-v8-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-v8-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v8-column-width/native-status","viewport-local-1788983964771-26036#viewport-v8-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-v8-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-v8-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-v8-column-width가 'V8 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 600 → 결함 632(불일치) → 복원 600(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L95","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v8-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-v8-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-v8-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-v8-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-v8-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v8-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-v8-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4148ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v8-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-v8-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v8-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-v8-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-v8-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-v8-column-width/native-retry","viewport-local-1788983964771-26036#viewport-v8-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-v8-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-v8-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"P1 pointer-mockup 800x900","title":"P1 pointer-mockup 800x900","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: P1의 명시된 viewport·DPR·touch 조건에서 home/calendar/volume/feed/profile 5개 화면의 가로 넘침, 컬럼 폭, 호스트 배경을 검사한다. 검증 계층: 실제 로그인 앱의 DOM rect·scrollWidth·computedStyle. 픽셀 완전일치나 기기 네이티브 렌더링 전체를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 공유 준비에서 일회용 계정과 완료 운동 4건·통계 fixture를 만든다. 각 CASE는 새로운 context에서 지정 viewport/DPR/touch를 쓰며, 업무 날짜와 locale/timezone은 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 context에서 실제 탭의 visible view와 레이아웃 안정 상태를 확인한 뒤 측정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 독립 기기 표의 기대 폭 390px, document/screen 가로 넘침 0, 비투명 배경을 사용한다. 앱의 폭 계산 함수를 다시 호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"800×900 pointer mockup 실제 context에서 5개 탭과 고정 390px 컬럼을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L171","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L185"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-0","viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-1","viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-2","viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-3","viewport-local-1788983964771-26036#viewport-p1-column-width/condition-step-4","viewport-local-1788983964771-26036#viewport-p1-column-width/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 같은 viewport에서 5개 탭을 모두 열며 문서와 내부 screen 양쪽 넘침을 확인한다. 넓은 touch·가로 화면·pointer·desktop은 별도 정확한 title CASE들로 필수 목록에 연결된다. DB 저장·권한 부작용은 이 기하 CASE의 검증 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L31","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L191"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 30개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-p1-column-width/native-status","viewport-local-1788983964771-26036#viewport-p1-column-width/first-attempt","viewport-local-1788983964771-26036#viewport-p1-column-width/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-p1-column-width/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-p1-column-width가 'P1 home'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 390 → 결함 422(불일치) → 복원 390(정상 재일치)를 확인했다. home의 실제 device width를 기대 폭+32px로 변경하고 동일 readViewportMetrics().column과 고정 표 기대값으로 불일치를 판정한다. home 폭 결함의 대표 증거이며 다른 4개 탭의 모든 CSS 결함에 대한 mutation 증거는 아니다. home 컬럼 폭의 DOM/CSS 경계 대표 결함만 대조한다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L190","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-p1-column-width/control-representative-normal","viewport-local-1788983964771-26036#viewport-p1-column-width/control-representative-negative","viewport-local-1788983964771-26036#viewport-p1-column-width/control-representative-restored","viewport-local-1788983964771-26036#viewport-p1-column-width/control-fault-applied","viewport-local-1788983964771-26036#viewport-p1-column-width/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-p1-column-width/owned-cleanup","viewport-local-1788983964771-26036#viewport-p1-column-width/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4094ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L170"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-p1-column-width/case-timeout","viewport-local-1788983964771-26036#viewport-p1-column-width/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-p1-column-width/lane-quality-status","viewport-local-1788983964771-26036#viewport-p1-column-width/required-aggregate","viewport-local-1788983964771-26036#viewport-p1-column-width/native-annotations","viewport-local-1788983964771-26036#viewport-p1-column-width/native-retry","viewport-local-1788983964771-26036#viewport-p1-column-width/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-title","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-revision","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-runId","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-project","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-locale","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-p1-column-width/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-controls","viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-p1-column-width/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"D1 desktop 1440x900","title":"D1 desktop 1440x900","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L241","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: D1 desktop의 zoom 계약값·하한에 따른 overflow·비투명 배경을 확인한다. 검증 계층: 실제 desktop host의 CSS custom property/computed overflow/background. 실제 확대 비율의 모든 자식 rect·시각 픽셀까지 검사하는 CASE는 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L241","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 일회용 계정·완료 세션·통계 fixture를 공유 준비하고 CASE별 새 pointer context에서 명시 viewport를 사용한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L242","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 desktop host가 보이고 기하가 안정된 뒤 CSS 계약값을 읽는다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L242","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L244","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L246","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 기대 zoom 1440/1913와 clamp 여부를 독립 표에서 정한다. 소수 3자리의 같은 closeTo 비교 규칙을 정상 단언과 control에 적용한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L249","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L253"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"1440×900 desktop에서 실제 zoom·가로 넘침·화면 상단 위치를 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 1개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L242","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L244","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L246"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/condition-step-0","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: D1 비하한과 D3 하한을 별도 필수 CASE로 연결하고 overflow가 각각 hidden/auto인지 확인한다. 해당 CSS 계약에 unrelated DB mutation이나 다른 계정 부작용을 요구하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L249","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L250"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 1개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 3개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-status","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/first-attempt","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-d1-desktop-zoom가 'desktop geometry'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 0.7527443805541035 → 결함 0.8777443805541035(불일치) → 복원 0.7527443805541035(정상 재일치)를 확인했다. 동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L252","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L253","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L254","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L105","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-representative-normal","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-representative-negative","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-representative-restored","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-fault-applied","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/owned-cleanup","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은749ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L241"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/case-timeout","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/lane-quality-status","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/required-aggregate","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-annotations","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-retry","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-title","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-revision","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-runId","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-project","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-locale","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-controls","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-d1-desktop-zoom/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"D3 desktop 1280x720","title":"D3 desktop 1280x720","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L241","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: D3 desktop의 zoom 계약값·하한에 따른 overflow·비투명 배경을 확인한다. 검증 계층: 실제 desktop host의 CSS custom property/computed overflow/background. 실제 확대 비율의 모든 자식 rect·시각 픽셀까지 검사하는 CASE는 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L241","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 일회용 계정·완료 세션·통계 fixture를 공유 준비하고 CASE별 새 pointer context에서 명시 viewport를 사용한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L144","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L242","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 desktop host가 보이고 기하가 안정된 뒤 CSS 계약값을 읽는다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L242","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L244","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L246","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 기대 zoom 0.7와 clamp 여부를 독립 표에서 정한다. 소수 3자리의 같은 closeTo 비교 규칙을 정상 단언과 control에 적용한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L249","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L253"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"1280×720 desktop에서 실제 zoom·가로 넘침·화면 상단 위치를 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 1개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L242","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L244","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L246"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/condition-step-0","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: D1 비하한과 D3 하한을 별도 필수 CASE로 연결하고 overflow가 각각 hidden/auto인지 확인한다. 해당 CSS 계약에 unrelated DB mutation이나 다른 계정 부작용을 요구하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L44","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L249","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L250"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 1개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 3개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-status","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/first-attempt","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-d3-desktop-zoom가 'desktop geometry'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 0.7 → 결함 0.825(불일치) → 복원 0.7(정상 재일치)를 확인했다. 동일 desktop metrics reader의 zoom 값에 대해 실제 --lg-desktop-root-zoom을 기대값+0.125로 바꾸고 같은 closeTo(3) 판정이 불일치하는지 확인한다. CSS zoom 값 계약의 검증이며 제품 zoom 계산 함수를 제거한 mutant나 전체 자식 배율의 검증은 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L85","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L252","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L253","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L254","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-representative-normal","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-representative-negative","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-representative-restored","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-fault-applied","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/owned-cleanup","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은734ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L45","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L241"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/case-timeout","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/lane-quality-status","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/required-aggregate","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-annotations","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-retry","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-title","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-revision","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-runId","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-project","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-locale","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-controls","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-d3-desktop-zoom/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"comment sheet: input row never overlaps the tabbar band","title":"comment sheet: input row never overlaps the tabbar band","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L208","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 390x844 touch 화면에서 댓글 입력 행의 탭바 비중첩·화면 내 위치·hit test와 시트 닫힘 뒤 탭바 복원을 확인한다. 검증 계층: 실제 댓글 시트 DOM geometry와 elementFromPoint. 댓글 저장 API/DB는 범위 밖이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L208","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 전용 계정의 실제 완료 세션으로 피드 댓글 시트를 열며 V3 context와 업무 날짜를 지정한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L209","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L210","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L215","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 피드 세션의 댓글 시트를 연 뒤 유한 애니메이션과 배치가 안정된 상태를 읽는다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L215","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L219","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 탭바 display none, 교집합 면적 0, 입력 행의 화면 내 위치와 hit-test true라는 독립 구조 조건을 적용한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L79","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L222","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L223","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L224","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L225"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"실제 댓글 sheet를 열어 입력 행의 viewport 내 위치를 측정하고 sheet 종료와 tabbar 복귀를 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 2개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L215","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L219"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-comment-input-outside/condition-step-0","viewport-local-1788983964771-26036#viewport-comment-input-outside/condition-step-1","viewport-local-1788983964771-26036#viewport-comment-input-outside/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 시트 열림 때 겹침·입력 접근성을 확인하고 닫힘 때 시트 제거와 탭바 복원을 확인한다. 390x844 이외 전 기기 댓글 시트 검증으로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L209","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L222","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L233","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L234","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L236"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 2개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 7개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-comment-input-outside/native-status","viewport-local-1788983964771-26036#viewport-comment-input-outside/first-attempt","viewport-local-1788983964771-26036#viewport-comment-input-outside/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-comment-input-outside/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-comment-input-outside가 'comment input geometry'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 true → 결함 false(불일치) → 복원 true(정상 재일치)를 확인했다. 실제 댓글 입력 form을 화면 높이 두 배 아래로 옮겨 동일 readCommentGeometry().formInViewport가 true에서 false로 바뀌는지 검사한다. 입력 행의 화면 밖 이탈을 대표한다. 탭바 display 자체를 되돌리는 별도 중첩 mutant는 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L64","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L224","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L227","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L228","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-comment-input-outside/control-representative-normal","viewport-local-1788983964771-26036#viewport-comment-input-outside/control-representative-negative","viewport-local-1788983964771-26036#viewport-comment-input-outside/control-representative-restored","viewport-local-1788983964771-26036#viewport-comment-input-outside/control-fault-applied","viewport-local-1788983964771-26036#viewport-comment-input-outside/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L139"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-comment-input-outside/owned-cleanup","viewport-local-1788983964771-26036#viewport-comment-input-outside/fixture-cleanup-afterAll-139","viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은1811ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L100","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/viewport-matrix.spec.mjs#L208"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-comment-input-outside/case-timeout","viewport-local-1788983964771-26036#viewport-comment-input-outside/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-comment-input-outside/lane-quality-status","viewport-local-1788983964771-26036#viewport-comment-input-outside/required-aggregate","viewport-local-1788983964771-26036#viewport-comment-input-outside/native-annotations","viewport-local-1788983964771-26036#viewport-comment-input-outside/native-retry","viewport-local-1788983964771-26036#viewport-comment-input-outside/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-title","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-revision","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-runId","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-project","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-locale","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-comment-input-outside/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-controls","viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-comment-input-outside/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"workout dock states + tabbar + brand row geometry","title":"workout dock states + tabbar + brand row geometry","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L198","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 운동 도크 5상태의 바닥 밀착·높이 항등, safe-bottom 0/34 및 safe-top 0/47 추종, 탭바·브랜드 행·기록 도구 스택의 geometry 계약을 확인한다. 검증 계층: 실제 앱 운동 상태 전이와 DOM/CSS 기하. 운동 저장 완료나 실제 iOS safe-area 전체는 검증하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 전용 계정과 통계 fixture를 공유 준비하고, 390x844 touch context에서 2세트의 실제 운동 상태 전이를 만든다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L68","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L199","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L294","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L301","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L73","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 운동 시작·세트 완료·휴식·종목 완료를 클릭하며 각 상태 selector의 실제 마운트를 확인한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L294","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L309","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L316","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L321","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L329","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L333","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: safe 주입량 34/47 자체가 독립 기대 delta다. 채널 높이 104/50, 화면 여백 118/50/64/50·기록 도구62를 고정 계약값으로 검사한다. CSS token과의 비교 및 상태간 높이 비교는 소유권/동일성 요구의 관계식이며 절대 총높이의 독립 정답이라고 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L41","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L165","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L186","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L231","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L239","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L286","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L342"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"실제 운동을 5개 dock 상태로 전환하고 탭별 safe inset/brand·records layer·높이 합계와 바닥 부착을 측정했다. local-1788983964771-26036의 해당 CASE checkpoint 4개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L173","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L294","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L309","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L316","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L321","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L329","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L333"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-0","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-1","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-2","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/condition-step-3","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 5상태×safe0/34, 4탭 브랜드행 존재·safe-top1회 가산, 도크 중 탭바 숨김, 기록 도구 왕복 뒤 홈채널 복원을 확인한다. enforcement flag는 현재 모두 true다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L34","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L258","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L263","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L272","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L290","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L309","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L333","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L342"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 4개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 171개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-status","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/first-attempt","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-dock-bottom-gap가 'drive live workout to the 5 dock states'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 true → 결함 false(불일치) → 복원 true(정상 재일치)를 확인했다. 실제 review dock을 32px 위로 옮겨 기존 measureDock().bottomFlush와 true 비교가 불일치하는지 검사한다. review dock 바닥 간격의 대표 결함이다. 모든 safe 계산/브랜드 정렬 mutant를 넣은 것은 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L155","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L165","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L335","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L336","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L337","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L120","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-representative-normal","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-representative-negative","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-representative-restored","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-fault-applied","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L73"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-dock-bottom-gap/owned-cleanup","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/fixture-cleanup-afterAll-73","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은12135ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/dock-geometry.spec.mjs#L198"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-dock-bottom-gap/case-timeout","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-dock-bottom-gap/lane-quality-status","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/required-aggregate","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-annotations","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-retry","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-title","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-revision","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-runId","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-project","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-locale","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-controls","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-dock-bottom-gap/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","title":"16 surfaces: content never ends under the bottom chrome (safe 0/34)","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L239","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 필수16개 목적 화면과 기존 friend-scope 추가1개에서 safe-bottom0/34 각각 콘텐츠 하단 여백·스크롤 끝 접근성·크롬 표시채널을 검사한다. 검증 계층: 실제 화면 DOM geometry/hit test. 하단 콘텐츠 접근성 검사이며 각 화면의 모든 저장 비즈니스 기능을 보장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L239","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 일회용 본인/친구 계정, 넘침을 강제하는 하루3세션×4종목×3세트, 추가 세션·팔로우·그룹·통계 fixture를 만든다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L96","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L102","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L107","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L110","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L240","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 17표면×2safe를 측정하고 journal-day 넘침·친구일지·PR 목록 진입을 필수로 확인한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L283","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L296","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L373","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L379","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L415","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L433","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 내용 하단≤실제 크롬 상단+0.5px, 스크롤 끝 최하단 대화요소가 크롬 위에 있고 hit-test true라는 독립 구조 요구다. 표현 코드의 padding 계산을 기대값으로 재호출하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L168","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L178","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L231","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L234","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L235"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"필수16표면과 유지된 friend-scope까지 17표면×safe0/34를 실제 측정하고 마지막 정확한 ID/variant 집합 단언을 완료했다. local-1788983964771-26036의 해당 CASE checkpoint 35개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L283","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L296","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L373","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L379","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L415","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L433"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-0","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-1","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-2","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-3","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-4","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-5","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-6","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-7","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-8","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-9","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-10","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-11","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-12","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-13","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-14","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-15","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-16","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-17","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-18","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-19","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-20","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-21","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-22","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-23","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-24","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-25","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-26","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-27","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-28","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-29","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-30","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-31","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-32","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-33","viewport-local-1788983964771-26036#viewport-journal-day-clearance/condition-step-34","viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 정확한 required16 ID+friend-scope와 safe0/34를 계약에서 대조한다. journal-day는 실제 overflow>1 및 마지막 addPastRecordButton을 필수 단언한다. 넘침이 없는 표면의 reach 생략은 명시된 scope이며, friend-journal 진입은 이제 조건부가 아니다. 월 경계는 seed month로 이동한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L226","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L315","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L319","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L332","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L333","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L379","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L382","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L433"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 35개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 257개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-status","viewport-local-1788983964771-26036#viewport-journal-day-clearance/first-attempt","viewport-local-1788983964771-26036#viewport-journal-day-clearance/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-journal-day-clearance/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-journal-day-clearance가 'surface: journal-day safe 0'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 true → 결함 false(불일치) → 복원 true(정상 재일치)를 확인했다. journal-day safe0에서 실제 padding-bottom을0으로 바꾸고 동일 measure reader의 contentBottom≤chromeTop+0.5 판정이 깨지는지 확인한다. #1250 journal-day 여백 결함을 대표한다. 다른16표면의 개별 제품 mutant까지 실행했다고 주장하지 않는다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L231","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L256","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L258","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L263","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L125","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-representative-normal","viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-representative-negative","viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-representative-restored","viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-fault-applied","viewport-local-1788983964771-26036#viewport-journal-day-clearance/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L121"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-journal-day-clearance/owned-cleanup","viewport-local-1788983964771-26036#viewport-journal-day-clearance/fixture-cleanup-afterAll-121","viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은21228ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/bottom-clearance.spec.mjs#L239"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-journal-day-clearance/case-timeout","viewport-local-1788983964771-26036#viewport-journal-day-clearance/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-journal-day-clearance/lane-quality-status","viewport-local-1788983964771-26036#viewport-journal-day-clearance/required-aggregate","viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-annotations","viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-retry","viewport-local-1788983964771-26036#viewport-journal-day-clearance/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-title","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-revision","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-runId","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-project","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-locale","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-journal-day-clearance/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-controls","viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-journal-day-clearance/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","title":"그룹장 이름 저장·공지 두 개 작성은 새로고침 뒤 라운지와 지난 공지에 유지된다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L89","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 그룹장이 그룹명을 변경하고 공지2개를 작성한 뒤 RPC 재조회와 새로고침한 지난 공지 목록에서 유지·순서를 확인한다. 검증 계층: 실제 두 계정·그룹 write/read RPC와 앱 UI. 검사하는 이름은 그룹명이며 owner 프로필 이름이 아니다. 원래 제목의 이름은 코드의 그룹명 textbox/저장 RPC/재진입 단언을 근거로 그룹명 변경을 뜻한다고 감사 범위에 명시한다. owner 프로필 이름 검사로 확대하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L89","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 각 CASE마다 새 owner/member 두 계정과 초대1개가 포함된 별도 그룹을 준비한다. 고정 업무일과 ko-KR/Asia-Seoul을 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L78","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L80","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"일회용 계정과 CASE별 새 context/page, serial 실행 및 격리된 cron scope를 확인했다. 그룹 각 test.beforeEach가 owner/member 계정을 만들고 enter(page, account)가 account.user.id를 전달한다. viewportStats의 호환 export는 drainOwnerStats와 동일 구현이다. owner의 requested_version을 읽어 현재 게시 세대 및 해당 owner active run 완료로 종료하며 다른 owner의 전역 pending0을 조건으로 삼지 않는다. 0/no-state는 같은 owner의 job/run 부재만 확인한다. 이전 호출 범위 공백은 소스로 해소됐고 실제 정리완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L86"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 그룹명 저장/공지 등록 버튼을 사용하고 RPC에 반영된 이름·공지2개를 확인한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L105","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 그룹명과 두 공지 원문은 테스트 입력 상수이며 RPC의 배열 전체를 최신→이전 순서의 고정 문자열 배열과 비교한다. 화면 원문 또한 같은 입력을 정답으로 사용한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L111","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L112","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L123"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"그룹 이름 및 서로 다른 공지 두 개를 실제 저장·조회하고 새 문서에서도 같은 이름과 공지 순서를 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 3개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L97","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L105","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L111"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/condition-step-0","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/condition-step-1","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/condition-step-2","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 공지 1개가 아니라2개를 저장해 이전 공지 유실·순서·중복을 전체 RPC 배열로 확인하고 재진입 때 두 원문을 모두 확인한다. 다른 계정 변경권한 거절은 이 owner 저장 CASE의 목적이 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L123"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 3개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 19개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-status","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/first-attempt","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-group-prior-notice-retained가 'group name and notices survive reload'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 true → 결함 false(불일치) → 복원 true(정상 재일치)를 확인했다. 재진입한 지난 공지 목록의 실제 text node에서 이전 공지 원문을 잘못된 원문으로 바꾸고 같은 text reader의 includes 판정을 검사한다. 이전 공지의 표시 유실을 대표한다. DB 공지를 삭제하거나 서버 저장 실패를 허용한 mutant는 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L122","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L125","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L126","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L130","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/ownerStats.test.mjs#L58"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-representative-normal","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-representative-negative","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-representative-restored","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-fault-applied","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L84"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/owned-cleanup","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/fixture-cleanup-afterEach-84","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4656ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L89"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/case-timeout","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다. 해당 개별 준비의 옛 기본120초 drain은 제거됐다. ownerStats는 최초 세대 조회부터 하나의10초 AbortController deadline을 시작하고 createStatsDrainer에 ownerId/requiredVersion/caseTimeoutMs와 남은timeout·signal을 전달한다. 각 SQL 및 polling에 남은 시간을 사용하고 취소 시 실제 세션 close 완료 후 실패한다. no-state/0도 같은 deadline에서 해당 owner job/run 부재를 확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L119"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/lane-quality-status","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/required-aggregate","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-annotations","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-retry","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-title","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-revision","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-runId","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-project","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-locale","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-controls","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-group-prior-notice-retained/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","title":"워드마크에서 초대를 수락하고 실제 팔로우 알림 읽음은 새로고침 뒤 유지된다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L131","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 멤버가 초대를 수락하고 실제 팔로우 알림을 읽은 뒤 서버 read_at와 새로고침 UI에 읽음 상태가 유지되는지 확인한다. 검증 계층: 실제 그룹 초대·가입 RPC, 실제 follow로 만든 notification, 읽음 RPC/UI. 소셜 제공자 로그인 전체는 범위 밖이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 새 owner/member·그룹 초대를 만들고 owner→member 팔로우를 DB에 삽입한다. 합성 notification payload가 아니라 실제 생성 경로를 사용한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L80","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"일회용 계정과 CASE별 새 context/page, serial 실행 및 격리된 cron scope를 확인했다. 그룹 각 test.beforeEach가 owner/member 계정을 만들고 enter(page, account)가 account.user.id를 전달한다. viewportStats의 호환 export는 drainOwnerStats와 동일 구현이다. owner의 requested_version을 읽어 현재 게시 세대 및 해당 owner active run 완료로 종료하며 다른 owner의 전역 pending0을 조건으로 삼지 않는다. 0/no-state는 같은 owner의 job/run 부재만 확인한다. 이전 호출 범위 공백은 소스로 해소됐고 실제 정리완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L86"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 초대행과 unread follow행이 있는 것을 먼저 확인하고 수락/모두읽음을 실행한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L140","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L146","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 초대수락 뒤 지정 groupId membership=true, 해당 friend 알림 read_at 존재, 미읽음행0, 재진입 뒤 초대수락버튼0이라는 입력/요구 기반 정답이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L143","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L146","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L156","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L157","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L158"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"실제 초대 수락·팔로우 알림 읽음과 새 문서에서 읽음 상태 유지를 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 3개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L134","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L139","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L140","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L146","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L147"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-read-state-retained/condition-step-0","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/condition-step-1","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/condition-step-2","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 수락한 초대가 다시 뜨지 않음과 읽음 상태가 재진입으로 되돌아가지 않음을 확인한다. 권한 경계를 종합검사하거나 전체 알림 보존·중복 방지를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L143","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L152","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L156","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L157","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L158"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 3개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 18개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-status","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/first-attempt","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-notification-read-state-retained가 'read state survives reload'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 0 → 결함 1(불일치) → 복원 0(정상 재일치)를 확인했다. 이미 읽은 실제 follow행에 unread class를 붙이고 동일 unread locator.count()가 기대0과 달라지는지 검사한다. 재진입 UI의 unread 회귀를 대표한다. 서버 read_at 자체를 변조한 mutation은 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L157","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L161","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L135","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/ownerStats.test.mjs#L58"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-representative-normal","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-representative-negative","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-representative-restored","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-fault-applied","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L84"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-read-state-retained/owned-cleanup","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/fixture-cleanup-afterEach-84","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은9765ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L131"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-read-state-retained/case-timeout","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다. 해당 개별 준비의 옛 기본120초 drain은 제거됐다. ownerStats는 최초 세대 조회부터 하나의10초 AbortController deadline을 시작하고 createStatsDrainer에 ownerId/requiredVersion/caseTimeoutMs와 남은timeout·signal을 전달한다. 각 SQL 및 polling에 남은 시간을 사용하고 취소 시 실제 세션 close 완료 후 실패한다. no-state/0도 같은 deadline에서 해당 owner job/run 부재를 확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L119"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-read-state-retained/lane-quality-status","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/required-aggregate","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-annotations","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-retry","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-title","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-revision","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-runId","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-project","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-locale","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-controls","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-notification-read-state-retained/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","title":"댓글 알림은 첫 피드 페이지 밖 내 운동 한 개를 실제 조회하고 올바른 댓글 시트를 연다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L167","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 첫 피드20개 밖의 오래된 본인 세션을 댓글 알림으로 직접 조회하여 정확한 본문·댓글 시트를 열고 read_at을 저장하는지 확인한다. 검증 계층: 실제26세션·다른 계정 댓글 생성, detail RPC 요청 identity, 타깃 피드/댓글 UI와 notification readback.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L167","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 별도 두 계정·follow 관계, 2024대상1개와 2026최신25개를 만든다. 업무일2026-09-08로 입력 날짜 간 순서가 명시되며 영원히 과거인 연도를 전제한 런타임조회가 아니다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L168","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L178","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"일회용 계정과 CASE별 새 context/page, serial 실행 및 격리된 cron scope를 확인했다. 그룹 각 test.beforeEach가 owner/member 계정을 만들고 enter(page, account)가 account.user.id를 전달한다. viewportStats의 호환 export는 drainOwnerStats와 동일 구현이다. owner의 requested_version을 읽어 현재 게시 세대 및 해당 owner active run 완료로 종료하며 다른 owner의 전역 pending0을 조건으로 삼지 않는다. 0/no-state는 같은 owner의 job/run 부재만 확인한다. 이전 호출 범위 공백은 소스로 해소됐고 실제 정리완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L75","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L86"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 초기 target 부재 및 실제 get_session_detail의 p_session_id를 관측하고 해당 요청 성공 뒤 화면을 판정한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L193","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 입력한 sessionId/title/note/comment 문자열을 정답으로 하고 detail RPC가 정확한 sessionId로 요청됐는지 확인한다. 타깃이 처음에는 피드에 없어야 한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L206"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"목표 운동이 첫 피드 페이지 밖에 있음을 먼저 확인하고 알림으로 정확한 운동·댓글을 연 뒤 읽음 receipt를 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 3개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L193"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-exact-comment/condition-step-0","viewport-local-1788983964771-26036#viewport-notification-exact-comment/condition-step-1","viewport-local-1788983964771-26036#viewport-notification-exact-comment/condition-step-2","viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 첫 페이지 밖 경계를 fixture26개와 target count0으로 확인한다. 알림 클릭 뒤 다른 운동의 본문/댓글이 아닌 정해진 입력과 일치하고 알림 read_at이 저장되는지 확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L178","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L187","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L204"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 3개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 14개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-status","viewport-local-1788983964771-26036#viewport-notification-exact-comment/first-attempt","viewport-local-1788983964771-26036#viewport-notification-exact-comment/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-notification-exact-comment/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-notification-exact-comment가 'notification opens the exact session and comment'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 true → 결함 false(불일치) → 복원 true(정상 재일치)를 확인했다. 실제 댓글 시트의 대상 댓글 text node를 다른 운동의 댓글 문자열로 바꿔 동일 reader.includes 목표 판정이 깨지는지 확인한다. 잘못된 댓글 표시를 대표한다. 서버 조회 권한·중복조회·DB 저장 원자성 mutation을 수행한 것은 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L199","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L200","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L201","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L140","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/ownerStats.test.mjs#L58"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-representative-normal","viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-representative-negative","viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-representative-restored","viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-fault-applied","viewport-local-1788983964771-26036#viewport-notification-exact-comment/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L84"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-exact-comment/owned-cleanup","viewport-local-1788983964771-26036#viewport-notification-exact-comment/fixture-cleanup-afterEach-84","viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4515ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L167"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-exact-comment/case-timeout","viewport-local-1788983964771-26036#viewport-notification-exact-comment/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다. 해당 개별 준비의 옛 기본120초 drain은 제거됐다. ownerStats는 최초 세대 조회부터 하나의10초 AbortController deadline을 시작하고 createStatsDrainer에 ownerId/requiredVersion/caseTimeoutMs와 남은timeout·signal을 전달한다. 각 SQL 및 polling에 남은 시간을 사용하고 취소 시 실제 세션 close 완료 후 실패한다. no-state/0도 같은 deadline에서 해당 owner job/run 부재를 확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/group-design-notifications.spec.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L119"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-exact-comment/lane-quality-status","viewport-local-1788983964771-26036#viewport-notification-exact-comment/required-aggregate","viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-annotations","viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-retry","viewport-local-1788983964771-26036#viewport-notification-exact-comment/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-title","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-revision","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-runId","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-project","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-locale","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-notification-exact-comment/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-controls","viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-notification-exact-comment/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","title":"아이언맨·기능성 트레이너 선택을 저장하고 새로고침 뒤 현재 카드·홈 직업명이 유지된다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L99","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: ironman/functional 두 직업 선택의 저장·서버값·재진입 카드·홈 직업명과 정확한 write2개를 확인한다. 검증 계층: 실제 profile update RPC·profiles readback와 reload UI. 레벨/기록 등급 불변의 전 계층 검증을 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L99","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: CASE마다 새 계정·profile/body metric·통계 fixture를 만들고 업무일2026-09-08 및390x844 context를 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"일회용 계정과 CASE별 새 context/page, serial 실행 및 격리된 cron scope를 확인했다. 프로필 각 beforeEach가 계정을 만들고 준비 호출에 user.id를 전달한다. viewportStats의 호환 export는 drainOwnerStats와 동일 구현이다. owner의 requested_version을 읽어 현재 게시 세대 및 해당 owner active run 완료로 종료하며 다른 owner의 전역 pending0을 조건으로 삼지 않는다. 0/no-state는 같은 owner의 job/run 부재만 확인한다. 이전 호출 범위 공백은 소스로 해소됐고 실제 정리완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L86"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 저장 버튼·HTTP response 성공·DB값 poll·reload를 순서대로 확인한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: id/name 고정 입력쌍, profiles.primary_training_style, aria-checked=true/현재, write payload 정확2개를 독립 기대값으로 사용한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L117","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L123","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L126","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L139"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"아이언맨/기능성 선택의 실제 저장과 각 reload 후 현재 카드/직업명 및 정확한 쓰기 횟수를 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 3개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L113","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L115","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L118","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L121"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-training-style-restored-selection/condition-step-0","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/condition-step-1","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/condition-step-2","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 두 새 선택의 저장과 각각의 reload 후 상태를 검사하며 write 전체배열로 중복/누락/불필요한 필드 변경을 확인한다. 확인창의 등급유지 문구(:111)는 실제 등급값 불변 증거가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L104","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L112","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L121","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L126","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L138","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L139"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 3개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 41개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-status","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/first-attempt","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-training-style-restored-selection가 'training style functional persisted and restored'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 \"true\" → 결함 \"false\"(불일치) → 복원 \"true\"(정상 재일치)를 확인했다. 재진입한 functional 카드의 aria-checked를false로 바꾸고 동일 getAttribute reader와 true 기대값을 대조한다. 저장 후 선택 카드 표시의 대표 결함이다. 실제 DB값/기존 등급을 바꾼 제품 mutant는 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L126","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L128","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L129","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L130","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L131","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L145","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/ownerStats.test.mjs#L58"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-representative-normal","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-representative-negative","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-representative-restored","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-fault-applied","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L63"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-training-style-restored-selection/owned-cleanup","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/fixture-cleanup-afterEach-63","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은10742ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L99"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-training-style-restored-selection/case-timeout","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다. 해당 개별 준비의 옛 기본120초 drain은 제거됐다. ownerStats는 최초 세대 조회부터 하나의10초 AbortController deadline을 시작하고 createStatsDrainer에 ownerId/requiredVersion/caseTimeoutMs와 남은timeout·signal을 전달한다. 각 SQL 및 polling에 남은 시간을 사용하고 취소 시 실제 세션 close 완료 후 실패한다. no-state/0도 같은 deadline에서 해당 owner job/run 부재를 확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L119"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-training-style-restored-selection/lane-quality-status","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/required-aggregate","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-annotations","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-retry","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-title","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-revision","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-runId","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-project","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-locale","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-controls","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-training-style-restored-selection/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","title":"성별 해제·키·체중을 한 요청으로 저장하며 pending 중에는 서버 값과 입력을 보존한다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L143","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 성별 null·키179.5·체중81.2를 하나의 RPC로 저장하고 pending 이전 서버값·불변 근육/체지방·reload 입력을 검사한다. 검증 계층: 실제 요청을 전송 전 보류하는 UI/RPC/DB readback. 성공 경계의 단일요청·전후값 검사이지 DB transaction rollback 실패주입 CASE는 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L143","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: CASE마다 새 계정, 기존 sex=m,height178,weight80,muscle35/bodyfat16/20을 고정 업무일에 준비한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L48","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"일회용 계정과 CASE별 새 context/page, serial 실행 및 격리된 cron scope를 확인했다. 프로필 각 beforeEach가 계정을 만들고 준비 호출에 user.id를 전달한다. viewportStats의 호환 export는 drainOwnerStats와 동일 구현이다. owner의 requested_version을 읽어 현재 게시 세대 및 해당 owner active run 완료로 종료하며 다른 owner의 전역 pending0을 조건으로 삼지 않는다. 0/no-state는 같은 owner의 job/run 부재만 확인한다. 이전 호출 범위 공백은 소스로 해소됐고 실제 정리완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L32","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L11","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L86"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 지정 profile RPC의 POST payload를 잡고 arrived 이후에 pending·DB이전값을 확인한다. release 후 response 성공·새 DB값을 검사한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L158","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L161","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L172","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: 명시한 이전/다음값과 불변 body metric 필드를 독립 literal로 비교한다. profile/metric 두 테이블 readback을 화면 입력과 비교하되 화면의 계산함수를 기대값으로 쓰지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L43","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L92","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L148","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L149","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L184","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L209","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L210"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"실제 profile update 요청을 보류해 입력·서버 원값 보존을 확인한 뒤 해제·원자 저장·reload의 값을 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 3개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 주입 이력: profile-body-pending, request 21, document E00599FBC2AA0774511FC73E1AA60EFF, terminal finished.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L158","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L161","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L162","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L170","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L172","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L175","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L189"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-body-restored-weight/condition-step-0","viewport-local-1788983964771-26036#viewport-body-restored-weight/condition-step-1","viewport-local-1788983964771-26036#viewport-body-restored-weight/condition-step-2","viewport-local-1788983964771-26036#viewport-body-restored-weight/injection-0-0-0","viewport-local-1788983964771-26036#viewport-body-restored-weight/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 성별해제 null 경계, pending 중 취소/필드 비활성, 이전 DB값 보존, legacy sex write0, 단일 write1, 근육/체지방 불변과 reload가 있다. DB중간실패 rollback을 이 성공 CASE의 증거로 확대하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L177","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L178","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L179","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L181","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L182","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L184","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L191","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L193","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L204"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 3개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 26개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-body-restored-weight/native-status","viewport-local-1788983964771-26036#viewport-body-restored-weight/first-attempt","viewport-local-1788983964771-26036#viewport-body-restored-weight/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-body-restored-weight/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-body-restored-weight가 'body values survive reload'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 \"81.2\" → 결함 \"0\"(불일치) → 복원 \"81.2\"(정상 재일치)를 확인했다. 재진입 후 실제 체중 입력 value를0으로 바꿔 동일 inputValue reader가 저장 기대81.2와 불일치하는지 검사한다. 재진입 입력의 잘못된 체중 표시를 대표한다. DB 원자성·중복 방지 제약을 제거한 mutant 증거는 없다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L210","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L212","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L214","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L215","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportStats.test.mjs#L57","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/ownerStats.test.mjs#L58"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-body-restored-weight/control-representative-normal","viewport-local-1788983964771-26036#viewport-body-restored-weight/control-representative-negative","viewport-local-1788983964771-26036#viewport-body-restored-weight/control-representative-restored","viewport-local-1788983964771-26036#viewport-body-restored-weight/control-fault-applied","viewport-local-1788983964771-26036#viewport-body-restored-weight/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L63"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-body-restored-weight/owned-cleanup","viewport-local-1788983964771-26036#viewport-body-restored-weight/fixture-cleanup-afterEach-63","viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은5281ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L143"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-body-restored-weight/case-timeout","viewport-local-1788983964771-26036#viewport-body-restored-weight/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다. 해당 개별 준비의 옛 기본120초 drain은 제거됐다. ownerStats는 최초 세대 조회부터 하나의10초 AbortController deadline을 시작하고 createStatsDrainer에 ownerId/requiredVersion/caseTimeoutMs와 남은timeout·signal을 전달한다. 각 SQL 및 polling에 남은 시간을 사용하고 취소 시 실제 세션 close 완료 후 실패한다. no-state/0도 같은 deadline에서 해당 owner job/run 부재를 확인한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L49","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportStats.mjs#L1","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L14","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L30","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L33","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/ownerStats.mjs#L42","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L37","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/statsDrainer.mjs#L119"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-body-restored-weight/lane-quality-status","viewport-local-1788983964771-26036#viewport-body-restored-weight/required-aggregate","viewport-local-1788983964771-26036#viewport-body-restored-weight/native-annotations","viewport-local-1788983964771-26036#viewport-body-restored-weight/native-retry","viewport-local-1788983964771-26036#viewport-body-restored-weight/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L154","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L176","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/profile-design-settings.spec.mjs#L194","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L87","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L91"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-title","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-revision","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-runId","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-project","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-locale","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-body-restored-weight/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-controls","viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-body-restored-weight/context-0-page-0-requests","viewport-local-1788983964771-26036#viewport-body-restored-weight/injection-0-0-0","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","title":"연간·월간 이동은 선택한 기간만 읽고 실제 10칸 분포 네 종류를 표시한다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L180","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 연간→현재월→이전월 선택마다 필요한 요청만 발생하고 해당 payload의 지표·4종10bin을 UI에 연결하며 상세 스택 왕복이 기간을 바꾸지 않는지 검사한다. 검증 계층: 실제 report RPC·UI 요청 scope·payload 표시. 통계 SQL 계산 전체의 독립 oracle 검증은 별도 범위다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 전용 계정·4일×2종목×3세트로 실제 통계 관측을 준비하고 drain/freshness와 연/9월/8월 RPC의 각10bin·관측합>0·서로 다른volume을 확인한다. DATE2026-09-08과 고정기간 입력을 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L92","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 실제 메뉴·이전기간·하루/세션 링크로 탐색하며 ready화면과 정확한 RPC scope를 확인한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L208","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L213","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: UI 바인딩의 정답은 UI 호출과 별도로 실제 서버에서 조회한 expected payload이다. period/request args와10bin labels는 테스트 고정표이며 volume/RPE 표시를 독립 간단 변환한다. 서버 통계 계산 자체가 맞는지는 이 UI CASE가 보장하는 범위가 아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L29","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L36","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L106","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L156","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L164","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L166","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L184","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L216"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"비활성 보고서의 무요청, 연간/현재월/이전월 정확한 요청·별도 서버 payload의 UI 값·네10칸 분포를 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 context/document와 정상 reader 값도 함께 확인했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L180","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L192","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L195","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L208","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L213"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-0","viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-1","viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-2","viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-3","viewport-local-1788983964771-26036#viewport-report-selected-period-label/condition-step-4","viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 비활성 상세요청0, 각단계 정확한 request배열, 10bin4종 라벨·비영 관측색, 세션→하루→리포트 역순 닫힘 및 기간/요청 불변을 검사한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L135","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L156","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L159","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L164","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L189","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L200","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L203","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L205","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L211","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L216"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 80개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-status","viewport-local-1788983964771-26036#viewport-report-selected-period-label/first-attempt","viewport-local-1788983964771-26036#viewport-report-selected-period-label/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-report-selected-period-label/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-report-selected-period-label가 'previous month exact data and request'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 \"2026년 8월\" → 결함 \"선택하지 않은 잘못된 기간\"(불일치) → 복원 \"2026년 8월\"(정상 재일치)를 확인했다. 이전월 제목을 잘못된 기간 문자열로 교체하고 동일 innerText.trim reader와 독립 previousMonthLabel을 비교한다. 선택기간 제목 불일치의 대표 DOM 결함이다. 네 histogram 전체의 계산/바인딩 각각을 변조한 증거는 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L219","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L220","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L221","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L222","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L155","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-representative-normal","viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-representative-negative","viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-representative-restored","viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-fault-applied","viewport-local-1788983964771-26036#viewport-report-selected-period-label/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L114"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-selected-period-label/owned-cleanup","viewport-local-1788983964771-26036#viewport-report-selected-period-label/fixture-cleanup-afterAll-114","viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은5048ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L180"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-selected-period-label/case-timeout","viewport-local-1788983964771-26036#viewport-report-selected-period-label/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-selected-period-label/lane-quality-status","viewport-local-1788983964771-26036#viewport-report-selected-period-label/required-aggregate","viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-annotations","viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-retry","viewport-local-1788983964771-26036#viewport-report-selected-period-label/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-title","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-revision","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-runId","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-project","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-locale","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-report-selected-period-label/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-controls","viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-report-selected-period-label/context-0-page-0-requests","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","title":"먼저 요청한 8월 응답이 늦게 도착해도 새로 선택한 연간 리포트를 덮어쓰지 않는다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L227","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 8월의 실제 서버 응답을 보류한 동안 연간으로 선택을 바꾸고 늦은 응답을 해제해도 연간 scope/지표가 유지되는지 검사한다. 검증 계층: 실제 RPC 결과의 브라우저 전달 지연·취소와 UI stale-response 차단. 서버 원문은 가짜 payload로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L227","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 전용 계정·4일×2종목×3세트로 실제 통계 관측을 준비하고 drain/freshness와 연/9월/8월 RPC의 각10bin·관측합>0·서로 다른volume을 확인한다. DATE2026-09-08과 고정기간 입력을 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L92","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: 정확한 RPC POST의8월 args에 대해서만 route.fetch 결과를 보류하고 heldPayload volume과loading을 단언하며 release/handled를 기다린다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L238","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L241","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L243","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L245","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L246","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L258","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L272","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L273","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: UI 바인딩의 정답은 UI 호출과 별도로 실제 서버에서 조회한 expected payload이다. period/request args와10bin labels는 테스트 고정표이며 volume/RPE 표시를 독립 간단 변환한다. 서버 통계 계산 자체가 맞는지는 이 UI CASE가 보장하는 범위가 아니다. 연간과8월 volume이 다름을 사전 단언해 두 선택이 같은 숫자여서 통과하는 경우를 차단한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L106","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L268","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L276","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L277","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L278"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"서로 다른 연간/8월 volume을 사전 확인하고 실제 8월 upstream 응답을 보류했다. 새 연간 선택으로 옛 Chromium 요청이 abort되는 명시된 stale 차단 경로와 해제 후 연간값 유지를 확인했다. 옛 payload가 JavaScript에 전달됐다고 주장하지 않는다. local-1788983964771-26036의 해당 CASE checkpoint 5개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 주입 이력: late-august-report, request 20, document 46BBE71881C3E2498C30783C12B9B753, terminal failed.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L238","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L241","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L243","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L245","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L246","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L258","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L272","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L273"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-0","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-1","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-2","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-3","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/condition-step-4","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/injection-0-0-0","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: 구 요청 보류/loading·새 연간 선택·해제 후 연간 값/제목/정확3요청을 확인한다. 구 요청 abort도 명시된 정상 차단으로 분류하며 예외는 해당route fulfill의 취소 관련문자열만 허용한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L239","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L241","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L248","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L250","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L256","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L266","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L270","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L276","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L277","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L278"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 5개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 61개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-status","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/first-attempt","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-report-stale-month-cannot-win가 'late month response cannot replace annual data'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 \"12,500kg\" → 결함 \"6,250kg\"(불일치) → 복원 \"12,500kg\"(정상 재일치)를 확인했다. 연간 volume text node를 사전확인한8월 volume으로 바꿔 같은 readViewportText와 volumeDisplay(expected.year) 판정이 깨지는지 검사한다. 이전월 값이 연간 지표를 덮는 표시 경계의 대표 결함이다. 제품의 request-generation guard를 제거한 source mutant는 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L156","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L276","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L279","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L280","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L282","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L160","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-representative-normal","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-representative-negative","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-representative-restored","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-fault-applied","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L114"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/owned-cleanup","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/fixture-cleanup-afterAll-114","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은4248ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L227"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/case-timeout","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/lane-quality-status","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/required-aggregate","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-annotations","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-retry","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L232","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L259","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L274","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L87","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L91"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-title","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-revision","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-runId","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-project","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-locale","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-controls","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/context-0-page-0-requests","viewport-local-1788983964771-26036#viewport-report-stale-month-cannot-win/injection-0-0-0","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}},{"id":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","title":"상세 RPC 일시 실패는 로그인 상태를 유지하며 재시도로 실서버 데이터를 복구한다","repository":"app","approval":"P","source":"https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L295","checks":{"1":{"status":"P","reason":"실제 입력·행동·단언으로 목적을 확정했다: 선언된 report 첫 요청503 실패가 로그인 상태를 무너뜨리지 않고 사용자 재조회1회로 실제 서버 data ready상태를 복구하는지 확인한다. 검증 계층: 첫HTTP응답503 주입, 다음 실제RPC응답/UI. 실제 서버 자체 장애/DB제약 제거의 증거로 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L295","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/required-coverage.json#L13"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"2":{"status":"P","reason":"시작 입력의 소스 근거: 전용 계정·4일×2종목×3세트로 실제 통계 관측을 준비하고 drain/freshness와 연/9월/8월 RPC의 각10bin·관측합>0·서로 다른volume을 확인한다. DATE2026-09-08과 고정기간 입력을 명시한다. 날짜는 명시된 geometry/feature fixture 입력이며 난수UUID는 계정·mutation 격리용이다. 실제 새 실행 환경 일치 증거는 별도 runtime 항목으로 남긴다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L52","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L55","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L71","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L86","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L92","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L98","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L103","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L108","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L119","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/businessDate.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L42"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"3":{"status":"P","reason":"전용 일회용 계정과 CASE별 새 context/page를 사용한다. workers1에서만 이 공유 fixture를 실행하며 다른 CASE 결과를 입력으로 쓰지 않는다. DB cron scope는 명시 격리 sandbox를 확인하고 teardown에서 복원한다. 실제 성공/실패 정리 완료는 기준10에서 별도 U다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L114","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L21","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L19","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/prOverviewFixtureClock.mjs#L70","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L138"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"4":{"status":"P","reason":"상태·사건으로 순서 제어: holdFirstFailure는 지정path/method의 첫요청만 보류·503으로 바꾸며 CASE는 started/loading/error/attempts2를 확인한다. 필요한 response/visible/배치정착을 기다리며 고정 sleep·networkidle만으로 준비를 판정하지 않는다. 단일 조건 대기는 lazyConditionWait와 viewportReadiness의 10초 경계로 제어한다. 개별 통계 준비는 해당 owner의 실제 세대를 읽어 단일10초 deadline으로 완료시키는 경로로 연결됐다. 응답 주입 CASE는 실제 현재 문서의 요청 ID와 주입 구간을 별도 기록한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L297","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L301","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L303","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L306","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L308","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L317","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L6","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L27"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"5":{"status":"P","reason":"독립 기대값의 실제 근거: UI 바인딩의 정답은 UI 호출과 별도로 실제 서버에서 조회한 expected payload이다. period/request args와10bin labels는 테스트 고정표이며 volume/RPE 표시를 독립 간단 변환한다. 서버 통계 계산 자체가 맞는지는 이 UI CASE가 보장하는 범위가 아니다. 예상 첫응답503과 error/로그인게이트0, 재조회2번째 요청·ready는 독립 상태/횟수 기대값이다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L153","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L156","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L297","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L308","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L309","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L310","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L311","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L316","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L317","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L319"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"6":{"status":"P","reason":"실제 report 요청의 held/loading→선언503/error(로그인 유지)→사용자 재조회1회/실서버 ready 및 정확한 두 요청을 확인했다. local-1788983964771-26036의 해당 CASE checkpoint 4개와 실제 단언 위치/종료를 원래 소스 조건에 대조했다. 실제 주입 이력: report-first-response-failure, request 19, document 58086A043D03F29B92E8BF56130CEFA8, terminal finished.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L297","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L301","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L303","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L306","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L308","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L317"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-0","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-1","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-2","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/condition-step-3","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/injection-0-0-0","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-full"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"7":{"status":"P","reason":"해당 목적의 경계·금지결과: pending/loading→error→ready, 로그인게이트 부재, 사용자 재조회 단한번으로 정확2요청, 실제4histogram/지표 복구를 확인한다. 자동CASE retry와 사용자의 다시불러오기는 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L299","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L303","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L307","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L308","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L310","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L311","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L314","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L315","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L316","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L317","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L319"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"8":{"status":"P","reason":"정본의 4개 필수 checkpoint가 정확히 한 번씩 완료됐고 그 안의 실제 단언 27개가 끝났다. 해당 CASE는 firstAttempt=true이며 missing/duplicate/swallowed/unfinished 오류가 없다. 실제 Playwright 우회·미완료 거절 및 성공 poll 내부 샘플 구분 회귀를 별도 연결했다. 단언 개수만으로 목적을 승인하지 않고 기준6의 실제 상황과 원래 단언 소스에 대조했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L63","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L144"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-status","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/first-attempt","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/checkpoint-verdicts","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/checkpoint-errors","app-node-93d4cad6#line-1620-enforcement-regression","app-node-93d4cad6#line-1622-enforcement-regression","app-node-93d4cad6#line-1623-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"9":{"status":"P","reason":"viewport-report-retry-ready-state가 'report retry restores real data'에서 실제 변경1회를 기록했다. 동일 reader/comparator의 정상 \"ready\" → 결함 \"error\"(불일치) → 복원 \"ready\"(정상 재일치)를 확인했다. 복구한 실제 report root의 data-lg-state를error로 바꿔 정상 단언과 같은 attribute reader/ready 기대값이 거절하는지 확인한다. 재조회 후 오류 상태가 남는 UI 경계 대표 결함이다. 실제 서버 장애나 auth/DB제약을 제거하는 mutation은 아니다. 현재 SHA의 실제 DOM/CSS mutation·복원 회귀와 무변경/예외/timeout 오인 거절 엔진 회귀를 연결했다. 이 판정은 해당 UI 경계 대표 결함이며 모든 단언 또는 제품 DB/권한/원자성 source mutant 탐지 범위를 주장하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L155","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L316","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L320","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L321","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L322","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L165","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L61","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L72","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L84","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L17","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/qualityControl.test.mjs#L101","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L67","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.browser.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportQuality.test.mjs#L127","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/boundedWait.test.mjs#L62","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L251","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L260","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-representative-normal","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-representative-negative","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-representative-restored","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-fault-applied","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/control-full","app-shared-93d4cad6#line-25-helper-regression","app-node-93d4cad6#line-3948-helper-regression","app-node-93d4cad6#line-3952-helper-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"10":{"status":"P","reason":"이 CASE의 owned-cleanup이 completed=true이고 모든 context/control/route 자원이 settled/pass다. 실제 page close와 그 뒤 observer disposal/남은 owned listener0을 확인했다. 같은 CASE afterEach 또는 같은 spec의 공유 afterAll이 완료돼 계정·cron 정리 경로도 끝났다. 공유 afterAll은 마지막 CASE stream에 기록된 동일 공유fixture hook을 인용하며 다른 CASE의 본문을 근거로 쓰지 않았다. 실제 기본/수동 context의 본문 실패 경로 및 close/acquire 실패 보존 회귀도 연결했다. 종료 시 역사적 pending 요청은 pageClosed와 구별해 보존하며 정상 응답 완료로 바꾸지 않았다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L141","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L142","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L147","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L150","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L51","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L56","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L281","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L288","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/cleanupScope.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L114"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-retry-ready-state/owned-cleanup","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/fixture-cleanup-afterAll-114","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-closed","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-disposed","app-shared-93d4cad6#line-24-cleanup-failure-path","app-node-93d4cad6#line-5088-cleanup-failure-path","app-node-93d4cad6#line-5089-cleanup-failure-path","app-node-93d4cad6#line-5090-cleanup-failure-path","app-node-93d4cad6#line-5091-cleanup-failure-path"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"11":{"status":"P","reason":"해당 native test의 effective timeout은60000ms이고 최초 시도 duration은2940ms로 개별 준비+본문 60초 한도 안에 끝났다. 공유 beforeAll과 teardown은 별도 hook 예산으로 구분했다. 동작별10초는 현재 소스 기준12 및 별도 bounded-wait 회귀로 확인하며 이 총시간만으로 대체하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L22","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L26","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L295"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-retry-ready-state/case-timeout","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/case-duration"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"12":{"status":"P","reason":"클릭·이동·expect 설정 최대10초, viewportReadiness의 폰트·유한 애니메이션·기하 안정화 한 poll, 수동 도착/완료 lazyConditionWait의 첫 await부터10초와 timer 취소를 확인했다. 지연 응답 route.fetch도10초이며 공유 beforeAll의 별도 예산과 CASE 개별 준비를 구분한다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L38","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L39","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportReadiness.mjs#L3","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/boundedWait.mjs#L26"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"13":{"status":"P","reason":"config retries0이며 CASE/file override로전체CASE재시도를켜지않는다. reporter는result.retry!==0을거절한다.같은조건의한정poll/제품의사용자재조회는자동CASE재시도가아니다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/playwright.viewport.config.mjs#L24","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47"],"evidenceRefs":[],"history":[{"phase":"historical-source-audit","status":"P","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"P","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"}]},"14":{"status":"P","reason":"정본 viewport22/117checkpoint/22control이 누락 없이 선택되고 각 required reporter와 통합 e2e-evidence 단계가 local-1788983964771-26036에서 pass했다. 이 CASE의 실제 retry0·빈 skip/fixme annotations·expectedStatus passed를 대조했고 재시도/예상실패/누락을 거절하는 집행 회귀도 확인했다. 이는 승인된 browser+viewport 부분 실행의 실제 필수 gate 증거이며 full CI·hosted 승격 완료로 확대 보고하지 않는다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQualityContract.mjs#L16","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/checkpointEvidence.mjs#L93","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L47","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L188","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/package.json#L34"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-retry-ready-state/lane-quality-status","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/required-aggregate","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-annotations","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-retry","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/native-expected-status","app-node-93d4cad6#line-4446-enforcement-regression","app-node-93d4cad6#line-4448-enforcement-regression"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]},"15":{"status":"P","reason":"정확히1개 진단 attachment의 CASE title/정확SHA/run/attempt/project/locale/timezone/start/end를 해당 결과와 대조했다. 실제 CDP document/loader 세대, request/protocol ID·method/path/status/terminal, control 정상·주입·negative·복원 시각과 문서 연결, close 이후 listener 정리 기록을 확인했다. 보류 요청은 같은 실제 request/document와 phase로 연결됐다. 이 정상 실행의 firstFailure/cleanupFailure는 null이며 이를 실패 경로 증명으로 쓰지 않는다. 현재 SHA에서 실제 viewport reload/hold/first-failure, teardown 중단의 조기 진단 보존, 민감값 제거 회귀를 별도 연결했다.","sources":["https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L183","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L198","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L217","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L218","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportQuality.mjs#L225","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L12","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/caseDiagnostic.mjs#L13","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L23","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L35","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L40","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L46","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L330","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/durabilityJourney.mjs#L261","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/qualityControl.mjs#L5","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L27","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/requiredEvidenceReporter.mjs#L124","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L74","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/tests/react/viewportDiagnostic.browser.mjs#L88","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L296","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L259","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/report-design-detail.spec.mjs#L318","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L81","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L87","https://github.com/dekerd/Barbelic/blob/93d4cad61d09d2c0c546145dd6dc73d8eab82721/e2e/support/viewportDiagnostic.mjs#L91"],"evidenceRefs":["viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-attachment-count","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-title","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-revision","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-runId","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-attempt","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-project","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-locale","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-timezone","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-startedAt","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-finishedAt","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-firstFailure","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/diagnostic-cleanupFailure","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-controls","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-documents","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/context-0-page-0-requests","viewport-local-1788983964771-26036#viewport-report-retry-ready-state/injection-0-0-0","app-shared-93d4cad6#line-23-failure-diagnostic","app-node-93d4cad6#line-1598-failure-diagnostic","app-node-93d4cad6#line-4447-failure-diagnostic"],"history":[{"phase":"historical-source-audit","status":"U","inputSha256":"ee1ec3e66e012e89cbac0b8276361c3cc158edeb2ccab54aaf258007cdb795c0"},{"phase":"source-audit","status":"U","revision":"93d4cad61d09d2c0c546145dd6dc73d8eab82721","inputSha256":"227c4fe11824907f9c54400646f296ef81a7c0255e2edc72ae3ff0993734306b"},{"phase":"explicit-review","status":"P","from":"U","overrideSha256":"b06298f4c35086d5aca2c5057dbe4c1a350f3dbd3f38971a71955b01d812b65a","reviewer":"Hilbert / case045_source — explicit CASE runtime review; root source review; Ohm viewport; Fermat SQL experiments","reviewedAt":"2026-09-09T20:08:46.067Z"}]}}}]}
