{
  "issueId": "4042",
  "environment": "dev",
  "generatedAt": "2026-10-13T01:03:08+09:00",
  "sourceResult": "qa-results redacted from tracked output",
  "timings": {
    "issueId": "4042",
    "environment": "dev",
    "generatedAt": "2026-10-12T15:33:09.887Z",
    "exitStatus": 1,
    "timings": [
      {
        "name": "qa:run",
        "startedAt": "2026-10-12T15:32:11.294Z",
        "detail": {
          "issueId": "4042",
          "environment": "dev",
          "exitStatus": 1
        },
        "finishedAt": "2026-10-12T15:33:09.887Z",
        "durationMs": 58593,
        "status": "failed"
      },
      {
        "name": "prepare-results",
        "startedAt": "2026-10-12T15:32:11.295Z",
        "detail": {},
        "finishedAt": "2026-10-12T15:32:11.305Z",
        "durationMs": 10,
        "status": "ok"
      },
      {
        "name": "auth-refresh",
        "startedAt": "2026-10-12T15:32:11.305Z",
        "detail": {},
        "finishedAt": "2026-10-12T15:32:19.089Z",
        "durationMs": 7784,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/ADMIN",
        "startedAt": "2026-10-12T15:32:11.306Z",
        "detail": {
          "application": "admin",
          "role": "ADMIN",
          "businessRole": "ADMIN"
        },
        "finishedAt": "2026-10-12T15:32:15.539Z",
        "durationMs": 4233,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/TA",
        "startedAt": "2026-10-12T15:32:11.311Z",
        "detail": {
          "application": "admin",
          "role": "TA",
          "businessRole": "TA"
        },
        "finishedAt": "2026-10-12T15:32:15.540Z",
        "durationMs": 4229,
        "status": "ok"
      },
      {
        "name": "auth-refresh:store/dev/VE",
        "startedAt": "2026-10-12T15:32:15.540Z",
        "detail": {
          "application": "store",
          "role": "VE",
          "businessRole": "VE"
        },
        "finishedAt": "2026-10-12T15:32:19.089Z",
        "durationMs": 3549,
        "status": "ok"
      },
      {
        "name": "playwright",
        "startedAt": "2026-10-12T15:32:19.089Z",
        "detail": {
          "command": "npx playwright test qa/issues/4042/dev --trace retain-on-failure",
          "exitStatus": 1
        },
        "finishedAt": "2026-10-12T15:33:09.887Z",
        "durationMs": 50798,
        "status": "failed"
      }
    ]
  },
  "summary": {
    "status": "PASS",
    "passed": 7,
    "failed": 0,
    "skipped": 0,
    "blocked": 0,
    "flaky": 0,
    "durationMs": 79655,
    "manualConfirmed": 2,
    "automatedPassed": 7
  },
  "rows": [
    {
      "title": "4042/dev/01-maintenance-window.spec.ts / [ADMIN] [#1] 계좌관리 > 이체하기: 머천트 이체·이체하기 점검 차단과 안내, 조회 유지",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 7796,
      "evidence": [
        "artifacts/screenshots/01-1-admin-remittance-maintenance.png"
      ],
      "screenshots": [
        "artifacts/screenshots/01-1-admin-remittance-maintenance.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "ADMIN",
      "page": "계좌관리 > 이체하기",
      "checklistItem": "전산 ADMIN 계좌관리 > 이체하기의 머천트 이체·이체하기 버튼이 점검시간에 비활성화되고 점검 안내를 표시하며 조회는 유지된다.",
      "action": "계좌관리 > 이체하기: 머천트 이체·이체하기 점검 차단과 안내, 조회 유지",
      "expected": "전산 ADMIN 계좌관리 > 이체하기의 머천트 이체·이체하기 버튼이 점검시간에 비활성화되고 점검 안내를 표시하며 조회는 유지된다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4042/dev/01-maintenance-window.spec.ts / [ADMIN] [#2] 렌탈페이·계좌 펌뱅킹·관리자 펌뱅킹 이체 차단과 조회 유지",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 14387,
      "evidence": [
        "artifacts/screenshots/02-2-rentalpay-maintenance.png",
        "artifacts/screenshots/03-2-account-firmbank-maintenance.png",
        "artifacts/screenshots/04-2-admin-firmbank-maintenance.png"
      ],
      "screenshots": [
        "artifacts/screenshots/02-2-rentalpay-maintenance.png",
        "artifacts/screenshots/03-2-account-firmbank-maintenance.png",
        "artifacts/screenshots/04-2-admin-firmbank-maintenance.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "ADMIN",
      "page": "계좌관리 > 이체하기(렌탈페이) / 계좌관리 > 펌뱅킹 등록 / 관리자 > 펌뱅킹",
      "checklistItem": "전산 ADMIN 렌탈페이 이체하기, 관리자 펌뱅킹, 계좌 펌뱅킹의 이체 동작이 점검시간에 차단되고 안내·조회는 유지된다.",
      "action": "렌탈페이·계좌 펌뱅킹·관리자 펌뱅킹 이체 차단과 조회 유지",
      "expected": "전산 ADMIN 렌탈페이 이체하기, 관리자 펌뱅킹, 계좌 펌뱅킹의 이체 동작이 점검시간에 차단되고 안내·조회는 유지된다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4042/dev/01-maintenance-window.spec.ts / [VE] [#3] 스토어 홈·지갑내역 송금 차단, 모바일 안내와 조회·잔액 새로고침",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 6777,
      "evidence": [
        "artifacts/screenshots/05-3-ve-home-mobile-maintenance.png",
        "artifacts/screenshots/06-3-ve-wallet-mobile-maintenance.png"
      ],
      "screenshots": [
        "artifacts/screenshots/05-3-ve-home-mobile-maintenance.png",
        "artifacts/screenshots/06-3-ve-wallet-mobile-maintenance.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "VE",
      "page": "스토어 홈 / 스토어 지갑내역",
      "checklistItem": "스토어 VE 홈·지갑내역 송금 버튼이 점검시간에 비활성화되고 모바일 안내 배치, 조회·잔액 새로고침이 정상이다.",
      "action": "스토어 홈·지갑내역 송금 차단, 모바일 안내와 조회·잔액 새로고침",
      "expected": "스토어 VE 홈·지갑내역 송금 버튼이 점검시간에 비활성화되고 모바일 안내 배치, 조회·잔액 새로고침이 정상이다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4042/dev/00-admin-transfer-action-permission.spec.ts / [ADMIN] [#6] TA 완료·반환 권한 조합별 재로그인 반영 및 프리셋 원복",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 34599,
      "evidence": [
        "artifacts/screenshots/07-6-ta-1-00.png",
        "artifacts/screenshots/08-6-ta-2-10.png",
        "artifacts/screenshots/09-6-ta-3-01.png",
        "artifacts/screenshots/10-6-ta-4-11.png",
        "artifacts/screenshots/11-6-ta-5-00.png"
      ],
      "screenshots": [
        "artifacts/screenshots/07-6-ta-1-00.png",
        "artifacts/screenshots/08-6-ta-2-10.png",
        "artifacts/screenshots/09-6-ta-3-01.png",
        "artifacts/screenshots/10-6-ta-4-11.png",
        "artifacts/screenshots/11-6-ta-5-00.png"
      ],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "ADMIN·TA",
      "page": "사용자 프리셋 / 전산 이체내역",
      "checklistItem": "ADMIN이 TA 프리셋 완료·반환 권한을 제거/완료만/반환만/모두/제거 순으로 변경할 때 TA 재로그인 후 작업 노출이 반영되고 원래 권한이 복구된다.",
      "action": "TA 완료·반환 권한 조합별 재로그인 반영 및 프리셋 원복",
      "expected": "ADMIN이 TA 프리셋 완료·반환 권한을 제거/완료만/반환만/모두/제거 순으로 변경할 때 TA 재로그인 후 작업 노출이 반영되고 원래 권한이 복구된다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4042/dev/02-boundary-result.spec.ts / [ADMIN] [#4] 22:00 종료 설정의 현재 이체·송금 버튼 활성화 및 재진입",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 33,
      "evidence": [],
      "screenshots": [],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "ADMIN·VE",
      "page": "전산·스토어 이체 화면",
      "checklistItem": "22:00 종료 설정 후 새로 연 화면과 재진입 화면의 이체·송금 버튼 활성화를 확인한다. 설정 변경 전부터 열린 이체 화면은 새로고침한 뒤 활성화되는지 확인한다.",
      "action": "22:00 종료 설정의 현재 이체·송금 버튼 활성화 및 재진입",
      "expected": "22:00 종료 설정 후 새로 연 화면과 재진입 화면의 이체·송금 버튼 활성화를 확인한다. 설정 변경 전부터 열린 이체 화면은 새로고침한 뒤 활성화되는지 확인한다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4042/dev/02-boundary-result.spec.ts / [ADMIN] [#4] 기존 이체 화면 새로고침 후 활성화",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 4,
      "evidence": [],
      "screenshots": [],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "ADMIN·VE",
      "page": "전산·스토어 이체 화면",
      "checklistItem": "22:00 종료 설정 후 새로 연 화면과 재진입 화면의 이체·송금 버튼 활성화를 확인한다. 설정 변경 전부터 열린 이체 화면은 새로고침한 뒤 활성화되는지 확인한다.",
      "action": "기존 이체 화면 새로고침 후 활성화",
      "expected": "22:00 종료 설정 후 새로 연 화면과 재진입 화면의 이체·송금 버튼 활성화를 확인한다. 설정 변경 전부터 열린 이체 화면은 새로고침한 뒤 활성화되는지 확인한다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4042/dev/03-ta-transfer-scope.spec.ts / [TA] [#5] 이체내역 완료·반환 작업 대상",
      "status": "MANUAL_CONFIRMED",
      "statusText": "개인확인완료",
      "durationMs": 2,
      "evidence": [],
      "screenshots": [],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "TA",
      "page": "전산 이체내역",
      "checklistItem": "TA 이체내역에서 동일 운영사·펌뱅크 유형·허용 상태의 완료·반환 작업과 본인 운영사 지정 법인 밖 건의 작업 허용을 확인한다.",
      "action": "이체내역 완료·반환 작업 대상",
      "expected": "TA 이체내역에서 동일 운영사·펌뱅크 유형·허용 상태의 완료·반환 작업과 본인 운영사 지정 법인 밖 건의 작업 허용을 확인한다.",
      "actual": "요청자 김경주가 개인 확인 완료를 통보했습니다. 자동 QA에서는 대상 거래 부재로 실행되지 않았으며 개인 확인의 별도 증거는 제공되지 않았습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "요청자가 개인 확인 완료를 통보했습니다. 자동 QA 기록은 SKIPPED였습니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      },
      "executionStatus": "SKIPPED",
      "confirmationSource": "요청자 김경주, 2026-10-13 대화에서 두 건의 개인확인완료 통보"
    },
    {
      "title": "4042/dev/03-ta-transfer-scope.spec.ts / [TA] [#5] 본인 운영사 지정 법인 밖 이체내역 작업 허용",
      "status": "MANUAL_CONFIRMED",
      "statusText": "개인확인완료",
      "durationMs": 1,
      "evidence": [],
      "screenshots": [],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "TA",
      "page": "전산 이체내역",
      "checklistItem": "TA 이체내역에서 동일 운영사·펌뱅크 유형·허용 상태의 완료·반환 작업과 본인 운영사 지정 법인 밖 건의 작업 허용을 확인한다.",
      "action": "본인 운영사 지정 법인 밖 이체내역 작업 허용",
      "expected": "TA 이체내역에서 동일 운영사·펌뱅크 유형·허용 상태의 완료·반환 작업과 본인 운영사 지정 법인 밖 건의 작업 허용을 확인한다.",
      "actual": "요청자 김경주가 개인 확인 완료를 통보했습니다. 자동 QA에서는 대상 거래 부재로 실행되지 않았으며 개인 확인의 별도 증거는 제공되지 않았습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "요청자가 개인 확인 완료를 통보했습니다. 자동 QA 기록은 SKIPPED였습니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      },
      "executionStatus": "SKIPPED",
      "confirmationSource": "요청자 김경주, 2026-10-13 대화에서 두 건의 개인확인완료 통보"
    },
    {
      "title": "4042/dev/03-ta-transfer-scope.spec.ts / [TA] [#5] 지정 법인 보유 TA 조회에서 운영사 펌뱅크 건 제외",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 3,
      "evidence": [],
      "screenshots": [],
      "traces": [],
      "logs": [],
      "files": [],
      "role": "TA",
      "page": "전산 이체내역",
      "checklistItem": "TA 이체내역에서 동일 운영사·펌뱅크 유형·허용 상태의 완료·반환 작업과 본인 운영사 지정 법인 밖 건의 작업 허용을 확인한다.",
      "action": "지정 법인 보유 TA 조회에서 운영사 펌뱅크 건 제외",
      "expected": "TA 이체내역에서 동일 운영사·펌뱅크 유형·허용 상태의 완료·반환 작업과 본인 운영사 지정 법인 밖 건의 작업 허용을 확인한다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    }
  ]
}
